[
https://issues.apache.org/jira/browse/LUCENE-6777?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14731026#comment-14731026
]
Michael McCandless commented on LUCENE-6777:
--------------------------------------------
bq. So it continues to grow the byte array for whatever reused buffer is passed.
Hmm but that grow is (effectively: a couple if statements) a no-op if the
builder's {{byte[]}} is already large enough?
That {{NumericUtils}} encoding code is so hairy, I really don't think we want
it in more places than one!
Also, the check for {{reusable == null}} isn't needed? It can become {{assert
reusable != null}}, and maybe rename {{reusable}} to {{result}}?
> Switch GeoPointTermsEnum range list to use a reusable BytesRef
> ---------------------------------------------------------------
>
> Key: LUCENE-6777
> URL: https://issues.apache.org/jira/browse/LUCENE-6777
> Project: Lucene - Core
> Issue Type: Improvement
> Reporter: Nicholas Knize
> Attachments: LUCENE-6777.patch, LUCENE-6777.patch, LUCENE-6777.patch
>
>
> GeoPointTermsEnum currently constructs a BytesRef for every computed range,
> then sorts on this BytesRef. This adds an unnecessary memory overhead since
> the TermsEnum only requires BytesRef on calls to nextSeekTerm and accept and
> the ranges only need to be sorted by their long representation. This issue
> adds the following two improvements:
> 1. Lazily compute the BytesRef on demand only when its needed
> 2. Add a single, transient BytesRef to GeoPointTermsEnum
> This will further cut back on heap usage when constructing ranges across
> every segment.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]