[ https://issues.apache.org/jira/browse/LUCENE-10619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17565873#comment-17565873 ]
ASF subversion and git services commented on LUCENE-10619: ---------------------------------------------------------- Commit 9f9786122b487f992119f45c5d8a51a8d9d4a6f8 in lucene's branch refs/heads/branch_9x from tang donghai [ https://gitbox.apache.org/repos/asf?p=lucene.git;h=9f9786122b4 ] LUCENE-10619: Optimize the writeBytes in TermsHashPerField (#966) > Optimize the writeBytes in TermsHashPerField > -------------------------------------------- > > Key: LUCENE-10619 > URL: https://issues.apache.org/jira/browse/LUCENE-10619 > Project: Lucene - Core > Issue Type: Improvement > Components: core/index > Affects Versions: 9.2 > Reporter: tang donghai > Priority: Major > Time Spent: 1.5h > Remaining Estimate: 0h > > Because we don't know the length of slice, writeBytes will always write byte > one after another instead of writing a block of bytes. > May be we could return both offset and length in ByteBlockPool#allocSlice? > 1. BYTE_BLOCK_SIZE is 32768, offset is at most 15 bits. > 2. slice size is at most 200, so it could fit in 8 bits. > So we could put them together into an int -------- offset | length > There are only two places where this function is used,the cost of change it > is relatively small. > When allocSlice could return the offset and length of new Slice, we could > change writeBytes like below > {code:java} > // write block of bytes each time > while(remaining > 0 ) { > int offsetAndLength = allocSlice(bytes, offset); > length = min(remaining, (offsetAndLength & 0xff) - 1); > offset = offsetAndLength >> 8; > System.arraycopy(src, srcPos, bytePool.buffer, offset, length); > remaining -= length; > offset += (length + 1); > } > {code} > If it could work, I'd like to raise a pr. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org