[ 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