[
http://issues.apache.org/jira/browse/LUCENE-639?page=comments#action_12425570 ]
Yonik Seeley commented on LUCENE-639:
-------------------------------------
OK, I had a bug in Vint2a... correcting it makes it slower than Vint2 on Java6
(at least on a P4). But VInt2a is still slightly faser on the Opteron w/ Java5.
You might want to try this version also:
class VInt2 extends VInt {
public int readVInt() throws IOException {
byte b = readByte();
if (b>=0) return b;
b &= 0x7f;
byte b2 = readByte();
if (b2>=0) return (b2<<7) | b;
b2 &= 0x7f;
byte b3 = readByte();
if (b3>=0) return (b3<<14) | (b2<<7) | b;
b3 &= 0x7f;
byte b4 = readByte();
if (b4>=0) return (b4<<21) | (b3<<14) | (b2<<7) | b;
b4 &= 0x7f;
byte b5 = readByte();
return (b5<<28) | (b4<<21) | (b3<<14) | (b2<<7) | b;
}
}
For a random distribution of vints less than 200 only, times in miliseconds:
P4, Java6 -server -Xbatch: VInt2=15833 VInt2a=17425 XOR=15583 Lucene=16900
P4, Java5 -server -Xbatch: VInt2=16063 VInt2a=16060 XOR=18097 Lucene=16108
Opteron, Java5 -server -Xbatch: VInt2=13441 VInt2a=13123 XOR=13110
Lucene=13626
Opteron, Java5 -server: VInt2=26589 VInt2a=26050 XOR=26484 Lucene=28718
(double the iterations)
In general, XOR looks good, except for Java5 on P4 for some reason, where it is
12.5% slower.
*But* when -Xbatch isn't used, the results change on the Opteron oddly enough!
> [PATCH] Slight performance improvement for readVInt() of IndexInput
> -------------------------------------------------------------------
>
> Key: LUCENE-639
> URL: http://issues.apache.org/jira/browse/LUCENE-639
> Project: Lucene - Java
> Issue Type: Improvement
> Components: Index
> Affects Versions: 2.0.0
> Reporter: Johan Stuyts
> Priority: Minor
> Attachments: Lucene2ReadVIntPerformance.patch, readVInt performance
> results.pdf, ReadVIntPerformanceMain.java
>
>
> By unrolling the loop in readVInt() I was able to get a slight, about 1.8 %,
> performance improvement for this method. The test program invoked the method
> over 17 million times on each run.
> I ran the performance tests on:
> - Windows XP Pro SP2
> - Sun JDK 1.5.0_07
> - YourKit 5.5.4
> - Lucene trunk
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]