[
https://issues.apache.org/jira/browse/UIMA-6136?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16956760#comment-16956760
]
Richard Eckart de Castilho commented on UIMA-6136:
--------------------------------------------------
Another thought might be for the FSIndexComparatorImpl to keep a reference to
the type system instance it was created for and using that as a short-cut in
equalsWithoutType() to avoid having to compare all the keys. But it might be
engineering towards an edge case. Probably having different type system
instances with the same content is more realistic...
> FSIndexComparatorImpl.equalsWithoutType() gets slow for many CASes with the
> same TS
> -----------------------------------------------------------------------------------
>
> Key: UIMA-6136
> URL: https://issues.apache.org/jira/browse/UIMA-6136
> Project: UIMA
> Issue Type: Bug
> Components: UIMA
> Affects Versions: 3.1.0SDK
> Reporter: Richard Eckart de Castilho
> Priority: Minor
> Attachments: 2019-10-21_22-23-37.png, 2019-10-21_22-44-25.png
>
>
> When creating several hundred CASes with the same type system, the
> `shareExisting` mechanism which is designed to save on memory starts eating
> into CPU time quite a lot.
> This screenshot shows that in my particular case, the method is called ~11mio
> times and takes the bulk of the processing time. The call hierarchy is a bit
> messed up though - actually this happens when the CASes are initialized.
> !2019-10-21_22-44-25.png|width=100%!
> The second screenshot shows the actual call hierarchy, but for some reason,
> the profile doesn't properly dive into the `equals` method here and doesn't
> count the time spent in `equalsWithoutType`.
> !2019-10-21_22-23-37.png|width=100%!!
> So either the method shouldn't be called that often - or - it should be way
> faster.
> In the example, I have like 1800 CAS instances and their type system has
> upwards of 200 types.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)