[ https://issues.apache.org/jira/browse/UIMA-6136?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16957937#comment-16957937 ]
Richard Eckart de Castilho commented on UIMA-6136: -------------------------------------------------- I wonder if the sharing of comparators is actually beneficial. If there is a small number of CASes, the memory-savings are small. If there is a large number of CASes, the performance impact is quite noticeable - in particular if the CASes are not re-used. So significant savings probably only happen if there is a large number of CASes with the same or similar type systems that are actually being re-used. Maybe this optimization could be made optional, either via a global flag or maybe even by checking if the CAS lives in a CAS Pool (if it does, it is likely to be re-used, otherwise probably not). > 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)