[ 
https://issues.apache.org/jira/browse/LUCENE-2084?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12794590#action_12794590
 ] 

Steven Rowe commented on LUCENE-2084:
-------------------------------------

Here are the unpatched results I got - these look quite similar to the results 
I posted from a custom (non-contrib-benchmark) benchmark in [the description of 
LUCENE-1719|https://issues.apache.org/jira/browse/LUCENE-1719#description-open] 
:

||Sun JVM||Language||java.text||ICU4J||KeywordAnalyzer||ICU4J Improvement||
|1.5.0_15 (32-bit)|English|9.00s|4.89s|2.90s|207%|
|1.5.0_15 (32-bit)|French|10.64s|5.12s|2.95s|254%|
|1.5.0_15 (32-bit)|German|10.19s|5.19s|2.97s|225%|
|1.5.0_15 (32-bit)|Ukrainian|13.66s|7.20s|2.96s|152%|
||Sun JVM||Language||java.text||ICU4J||KeywordAnalyzer||ICU4J Improvement||
|1.5.0_15 (64-bit)|English|5.97s|2.55s|1.50s|326%|
|1.5.0_15 (64-bit)|French|6.86s|2.74s|1.56s|349%|
|1.5.0_15 (64-bit)|German|6.85s|2.76s|1.59s|350%|
|1.5.0_15 (64-bit)|Ukrainian|9.56s|4.01s|1.56s|227%|
||Sun JVM||Language||java.text||ICU4J||KeywordAnalyzer||ICU4J Improvement||
|1.6.0_13 (64-bit)|English|3.04s|2.06s|1.07s|99%|
|1.6.0_13 (64-bit)|French|3.58s|2.04s|1.14s|171%|
|1.6.0_13 (64-bit)|German|3.35s|2.22s|1.14s|105%|
|1.6.0_13 (64-bit)|Ukrainian|4.48s|2.94s|1.21s|89%|

Here are the results after applying the synced-to-trunk patch:

||Sun JVM||Language||java.text||ICU4J||KeywordAnalyzer||ICU4J Improvement||
|1.5.0_15 (32-bit)|English|8.73s|4.61s|2.90s|241%|
|1.5.0_15 (32-bit)|French|10.38s|4.87s|2.94s|285%|
|1.5.0_15 (32-bit)|German|9.95s|4.94s|2.97s|254%|
|1.5.0_15 (32-bit)|Ukrainian|13.37s|6.91s|2.90s|161%|
||Sun JVM||Language||java.text||ICU4J||KeywordAnalyzer||ICU4J Improvement||
|1.5.0_15 (64-bit)|English|5.78s|2.65s|1.57s|290%|
|1.5.0_15 (64-bit)|French|6.74s|2.74s|1.64s|364%|
|1.5.0_15 (64-bit)|German|6.69s|2.86s|1.66s|319%|
|1.5.0_15 (64-bit)|Ukrainian|9.40s|4.18s|1.62s|204%|
||Sun JVM||Language||java.text||ICU4J||KeywordAnalyzer||ICU4J Improvement||
|1.6.0_13 (64-bit)|English|3.06s|1.82s|1.09s|170%|
|1.6.0_13 (64-bit)|French|3.36s|1.88s|1.16s|206%|
|1.6.0_13 (64-bit)|German|3.40s|1.95s|1.14s|179%|
|1.6.0_13 (64-bit)|Ukrainian|4.33s|2.65s|1.21s|117%|

And here is a comparison of the two:

||Sun JVM||Language||java.text improvement||ICU4J improvement||
|1.5.0_15 (32-bit)|English|5.1%|16.8%|
|1.5.0_15 (32-bit)|French|3.8%|12.9%|
|1.5.0_15 (32-bit)|German|3.9%|13.1%|
|1.5.0_15 (32-bit)|Ukrainian|2.6%|6.2%|
||Sun JVM||Language||java.text improvement||ICU4J improvement||
|1.5.0_15 (64-bit)|English|6.6%|-2.2%|
|1.5.0_15 (64-bit)|French|4.4%|7.7%|
|1.5.0_15 (64-bit)|German|5.0%|-2.0%|
|1.5.0_15 (64-bit)|Ukrainian|3.3%|-3.7%|
||Sun JVM||Language||java.text improvement||ICU4J improvement||
|1.6.0_13 (64-bit)|English|0.5%|36.1%|
|1.6.0_13 (64-bit)|French|11.4%|25.5%|
|1.6.0_13 (64-bit)|German|-1.7%|33.8%|
|1.6.0_13 (64-bit)|Ukrainian|5.3%|20.6%|

It's not unequivocal, but there is a definite overall improvement in the 
patched version; I'd say these results justify applying the patch.

I won't post them here, (mostly  because I didn't save them :) ) but I've run 
the same benchmark (with some variation in the number of iterations) and 
noticed that while there are always a couple of places where the unpatched 
version appears to do slightly better, the place at which this occurs is not 
consistent, and the cases where the patched version improves throughput always 
dominate.

> remove Byte/CharBuffer wrapping for collation key generation
> ------------------------------------------------------------
>
>                 Key: LUCENE-2084
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2084
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: contrib/*
>            Reporter: Robert Muir
>            Assignee: Robert Muir
>            Priority: Minor
>             Fix For: 3.1
>
>         Attachments: collation.benchmark.tar.bz2, LUCENE-2084.patch, 
> LUCENE-2084.patch
>
>
> We can remove the overhead of ByteBuffer and CharBuffer wrapping in 
> CollationKeyFilter and ICUCollationKeyFilter.
> this patch moves the logic in IndexableBinaryStringTools into char[],int,int 
> and byte[],int,int based methods, with the previous Byte/CharBuffer methods 
> delegating to these.
> Previously, the Byte/CharBuffer methods required a backing array anyway.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to