uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard Eckart de Castilho (Jira)" <...@uima.apache.org>
Subject [jira] [Commented] (UIMA-6136) FSIndexComparatorImpl.equalsWithoutType() gets slow for many CASes with the same TS
Date Tue, 22 Oct 2019 07:18:00 GMT

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

Mime
View raw message