[ https://issues.apache.org/jira/browse/SO
LR-390?page=com.atlassian.jira.plugin.system.issuetabpanels:
comment-tabpanel#action_12537062 ]
Yonik Seeley commented on SOLR-390:
-----------------------------------
As I suspected, it doesn't look like there is yet any JVM
acceleration for Arrays.fill() (and I wouldn't hold my
breath).
I just tested with Java 1.6 -server, and my current method
appears about 88% faster (on a P4 at least).
I used an array size of 1000 (since HashDocSet will normally
be between 1 and 3000),
and 10,000,000 iterations.
explicit loop countdown => 9281 msec
Arrays.fill => 17515 msec
public class TestPerf {
private static int VAL=-1;
private static void fill(int[] x) {
/*
for (int i=x.length-1; i>=0; i--) {
x[i] = VAL;
}
*/
Arrays.fill(x,VAL);
}
public static void main(String[] args) {
int a=0;
int sz = Integer.parseInt(args[a++]);
int iter = Integer.parseInt(args[a++]);
int[] x = new int[sz];
int ret=0;
long start = System.currentTimeMillis();
for (int i=0; i<iter; i++) {
fill(x);
ret = ret + x[0]; // use results
}
long end = System.currentTimeMillis();
System.out.println("result=" + ret);
System.out.println("time=" +(end-start));
}
}
> HashDocSet initialization of internal array is not
efficient
>
------------------------------------------------------------
>
> Key: SOLR-390
> URL: https:
//issues.apache.org/jira/browse/SOLR-390
> Project: Solr
> Issue Type: Bug
> Components: search
> Reporter: John Wang
>
> HashDocSet initializes the internal array but iterating
it instead of using Arrays.fill which is much faster. Patch
included
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue
online.
|