[ https://issues.apache.org/jira/browse/LUCENE-1600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12699864#action_12699864 ]
Patrick Eger commented on LUCENE-1600: -------------------------------------- Hashmaps would work also, but then they either need to be synchronized or kept per-thread, the former would probably kill all your performance gains and the latter would be annoying i think. A moderate usage of String.intern() is fine i think, my patch just takes it out of the hot-path (for my use-case at least). Other uses of String.intern() in the codebase may have different solutions/tradeoffs certainly. > Reduce usage of String.intern(), performance is terrible > -------------------------------------------------------- > > Key: LUCENE-1600 > URL: https://issues.apache.org/jira/browse/LUCENE-1600 > Project: Lucene - Java > Issue Type: Improvement > Affects Versions: 2.4, 2.4.1 > Environment: Windows Server 2003 x64 > Hotspot JDK 1.6.0_12 64-bit > Reporter: Patrick Eger > Assignee: Michael McCandless > Priority: Minor > Fix For: 2.9 > > Attachments: intern.png, intern_perf.patch > > > I profiled a simple MatchAllDocsQuery() against ~1.5 million documents (8 > fields of short text, Field.Store.YES,Field.Index.NOT_ANALYZED_NO_NORMS), > then retrieved all documents via searcher.doc(i, fs). String.intern() showed > up as a top hotspot (see attached screenshot), so i implemented a small > optimization to not intern() for every new Field(), instead forcing the > intern in the FieldInfos class and adding a optional "internName" constructor > to Field. This reduced execution time for searching and iterating through all > documents by 35%. Results were similar for -server and -client. > TRUNK (2.9) w/out patch: matched 1435563 in 8884 ms/search > TRUNK (2.9) w/patch: matched 1435563 in 5786 ms/search -- 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