[
https://issues.apache.org/jira/browse/SOLR-11242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16151595#comment-16151595
]
Michael Braun commented on SOLR-11242:
--------------------------------------
Attached a simple patch that makes the exception static so the creation only
happens once (the expensive part). Made a simple class to test the before and
after for rough performance numbers.
Before with the constants in the file on my 5 year old MacBook - 1128 ms.
After: 1020 ms. I'll be opening up a separate issue soon for FastCharStream's
similar fix as well.
> QueryParser should avoid creating an LookaheadSuccess(Error) object with
> every instance
> ---------------------------------------------------------------------------------------
>
> Key: SOLR-11242
> URL: https://issues.apache.org/jira/browse/SOLR-11242
> Project: Solr
> Issue Type: Improvement
> Security Level: Public(Default Security Level. Issues are Public)
> Affects Versions: 7.0, 6.6.1, master (8.0)
> Reporter: Michael Braun
> Attachments: SOLR-11242.patch, SOLR-11242.png,
> TestQueryPerfSpeedup.java
>
>
> Sampling of an application which includes a very heavy query load testing
> against an EmbeddedSolrServer reveals a huge amount of the time spent on
> initialization of the QueryParser itself, specifically an internal class
> called LookaheadSuccess which extends from Error. With every instance of
> QueryParser created, it spends time populating the stacktrace for this
> object, which is created as a final instance variable (the variable called
> jj_ls).
> Ideally an exception shouldn't be used as a signaling mechanism, or at the
> very least, not an exception created on every single object instantiation.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]