The implementation of Interner doesn't look threadsafe to me. At the very least shouldn't 'pool' be marked volatile, otherwise the result of 'pool = newPool' is not guaranteed to be visible to other threads?

[
https://issues.apache.org/jira/browse/LUCENE-1607?page=com.atlassian.j
ira.plugin.system.issuetabpanels:all-tabpanel ]

Earwin Burrfoot updated LUCENE-1607:
------------------------------------
Attachment: intern.patch

String.intern() faster alternative
----------------------------------
Key: LUCENE-1607
URL: https://issues.apache.org/jira/browse/LUCENE-1607
Project: Lucene - Java
Issue Type: Improvement
Reporter: Earwin Burrfoot
Fix For: 2.9
Attachments: intern.patch

By using our own interned string pool on top of default,
String.intern() can be greatly optimized.

On my setup (java 6) this alternative runs ~15.8x faster for already
interned strings, and ~2.2x faster for 'new String(interned)'

For java 5 and 4 speedup is lower, but still considerable.





---------------------------------------------------------------------
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