[ https://issues.apache.org/jira/browse/LUCENE-6777?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nicholas Knize updated LUCENE-6777: ----------------------------------- Attachment: LUCENE-6777.patch Attached patch that splits some of the longer ternary operators. bq. is it possible to e.g. reuse a shared BytesRefBuilder? I would have preferred this to begin with, but longToPrefixCodedBytes calls the following {noformat}bytes.grow(BUF_SIZE_LONG);{noformat} So it continues to grow the byte array for whatever reused buffer is passed. As an alternative I can update NumericUtils to include a version that reuses a BytesRefBuilder? That is if we think it will be useful outside this one use case? > 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 > > > 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: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org