benwtrent commented on code in PR #11860:
URL: https://github.com/apache/lucene/pull/11860#discussion_r1038420089


##########
lucene/core/src/java/org/apache/lucene/util/hnsw/HnswGraph.java:
##########
@@ -144,6 +145,10 @@ public NodesIterator(int size) {
       this.size = size;
     }
 
+    public int[] copy() {
+      return ArrayUtil.copyOfSubArray(nodes, 0, size);
+    }

Review Comment:
   @jpountz we could, but then we lose the intrinsics. I did some performance 
testing and found that using intrinsics here with ArrayUtil is way better and 
without it flush time is increased significantly. Maybe it would be better for 
the caller to provide an array and have the iterator populate it in a function?
   
   Would you prefer:
   
   ```java
       public void consume(int[] dest) {
           System.arraycopy(nodes, 0, dest, 0, dest.length);
       }
   ```
   
   Or something? Or would you rather have the runtime cost on flush? (which 
seems unjustified to me)



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to