private long calculateEstimatedSize() { long elementsSize = (channels.length > 0) ? sizeOf(channels[0].elements()) : 0; long channelsArraySize = elementsSize * channels.length; long addressesArraySize = sizeOf(valueAddresses.elements()); return INSTANCE_SIZE + pagesMemorySize + channelsArraySize + addressesArraySize; }
@Override public long getEstimatedSize() { return INSTANCE_SIZE + (sizeOf(channelBuilders.get(0).elements()) * channelBuilders.size()) + completedPagesMemorySize + currentPageBuilder.getRetainedSizeInBytes() + sizeOf(groupAddressByHash) + sizeOf(groupIdsByHash) + groupAddressByGroupId.sizeOf() + sizeOf(rawHashByHashPosition) + preallocatedMemoryInBytes; }
private long calculateEstimatedSize() { long elementsSize = (channels.length > 0) ? sizeOf(channels[0].elements()) : 0; long channelsArraySize = elementsSize * channels.length; long addressesArraySize = sizeOf(valueAddresses.elements()); return INSTANCE_SIZE + pagesMemorySize + channelsArraySize + addressesArraySize; }
private long calculateEstimatedSize() { long elementsSize = (channels.length > 0) ? sizeOf(channels[0].elements()) : 0; long channelsArraySize = elementsSize * channels.length; long addressesArraySize = sizeOf(valueAddresses.elements()); return pagesMemorySize + channelsArraySize + addressesArraySize; }
@Override public long getEstimatedSize() { return (sizeOf(channelBuilders.get(0).elements()) * channelBuilders.size()) + completedPagesMemorySize + currentPageBuilder.getRetainedSizeInBytes() + sizeOf(groupAddressByHash) + sizeOf(groupIdsByHash) + groupAddressByGroupId.sizeOf(); }
private long calculateEstimatedSize() { long elementsSize = (channels.length > 0) ? sizeOf(channels[0].elements()) : 0; long channelsArraySize = elementsSize * channels.length; long addressesArraySize = sizeOf(valueAddresses.elements()); return INSTANCE_SIZE + pagesMemorySize + channelsArraySize + addressesArraySize; }
@Override public long getEstimatedSize() { return INSTANCE_SIZE + (sizeOf(channelBuilders.get(0).elements()) * channelBuilders.size()) + completedPagesMemorySize + currentPageBuilder.getRetainedSizeInBytes() + sizeOf(groupAddressByHash) + sizeOf(groupIdsByHash) + groupAddressByGroupId.sizeOf() + sizeOf(rawHashByHashPosition) + preallocatedMemoryInBytes; }
@Override public long getEstimatedSize() { return INSTANCE_SIZE + (sizeOf(channelBuilders.get(0).elements()) * channelBuilders.size()) + completedPagesMemorySize + currentPageBuilder.getRetainedSizeInBytes() + sizeOf(groupAddressByHash) + sizeOf(groupIdsByHash) + groupAddressByGroupId.sizeOf() + sizeOf(rawHashByHashPosition) + preallocatedMemoryInBytes; }
@Override protected Class<?>[] getSignatureTypes(final Method method) { Class<?>[] signatureTypes = super.getSignatureTypes(method); if (this.needsInstance(method)) { final ObjectArrayList<Class<?>> paramList = ObjectArrayList.wrap(signatureTypes); paramList.ensureCapacity(paramList.size() + 1); paramList.add(0, method.getDeclaringClass()); signatureTypes = paramList.elements(); } return signatureTypes; }
private int getScoredResults( final DocumentIterator documentIterator, final int offset, final int length, final double lastMinScore, final ObjectArrayList<DocumentScoreInfo<Reference2ObjectMap<Index,SelectedInterval[]>>> results, final IntSet alreadySeen ) throws IOException { final ScoredDocumentBoundedSizeQueue<Reference2ObjectMap<Index,SelectedInterval[]>> top = new ScoredDocumentBoundedSizeQueue<Reference2ObjectMap<Index,SelectedInterval[]>>( offset + length ); int document, count = 0; // Number of not-already-seen documents scorer.wrap( documentIterator ); while ( ( document = scorer.nextDocument() ) != -1 ) { if ( alreadySeen != null && ! alreadySeen.add( document ) ) continue; count++; // TODO: we should avoid enqueuing until we really know we shall use the values top.enqueue( document, scorer.score() ); } final int n = Math.max( top.size() - offset, 0 ); // Number of actually useful documents, if any if ( ASSERTS ) assert n <= length : n; if ( n > 0 ) { final int s = results.size(); results.size( s + n ); final Object[] elements = results.elements(); // We scale all newly inserted item so that scores are always decreasing for ( int i = n; i-- != 0; ) elements[ i + s ] = top.dequeue(); // The division by the maximum score was missing in previous versions; can be removed to reproduce regressions. // TODO: this will change scores if offset leaves out an entire query final double adjustment = lastMinScore / ( s != 0 ? ((DocumentScoreInfo<?>)elements[ s ]).score : 1.0 ); for ( int i = n; i-- != 0; ) ((DocumentScoreInfo<?>)elements[ i + s ]).score *= adjustment; } return count; }
private int getScoredResults( final DocumentIterator documentIterator, final int offset, final int length, final double lastMinScore, final ObjectArrayList<DocumentScoreInfo<Reference2ObjectMap<Index,SelectedInterval[]>>> results, final LongSet alreadySeen ) throws IOException { final ScoredDocumentBoundedSizeQueue<Reference2ObjectMap<Index,SelectedInterval[]>> top = new ScoredDocumentBoundedSizeQueue<Reference2ObjectMap<Index,SelectedInterval[]>>( offset + length ); long document; int count = 0; // Number of not-already-seen documents scorer.wrap( documentIterator ); while ( ( document = scorer.nextDocument() ) != -1 ) { if ( alreadySeen != null && ! alreadySeen.add( document ) ) continue; count++; // TODO: we should avoid enqueuing until we really know we shall use the values top.enqueue( document, scorer.score() ); } final int n = Math.max( top.size() - offset, 0 ); // Number of actually useful documents, if any if ( ASSERTS ) assert n <= length : n; if ( n > 0 ) { final int s = results.size(); results.size( s + n ); final Object[] elements = results.elements(); // We scale all newly inserted item so that scores are always decreasing for ( int i = n; i-- != 0; ) elements[ i + s ] = top.dequeue(); // The division by the maximum score was missing in previous versions; can be removed to reproduce regressions. // TODO: this will change scores if offset leaves out an entire query final double adjustment = lastMinScore / ( s != 0 ? ((DocumentScoreInfo<?>)elements[ s ]).score : 1.0 ); for ( int i = n; i-- != 0; ) ((DocumentScoreInfo<?>)elements[ i + s ]).score *= adjustment; } return count; }
final int s = results.size(); results.size( s + n ); final Object[] elements = results.elements();
final int s = results.size(); results.size( s + n ); final Object[] elements = results.elements();
(Object[])hitsOnCurrentDocument.elements(), 0, hitsOnCurrentDocument.size()); hitsObtained = true;