UIMA
  1. UIMA
  2. UIMA-2385

Improve XmiCasDeserializer performance

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.4.0SDK
    • Fix Version/s: 2.4.1SDK
    • Component/s: Core Java Framework
    • Labels:
      None

      Description

      I profiled an expensive CAS deserialization and found that 46% of the time was in CASImpl.ll_getFSForRef (the method that creates a FeatureStructure Java object for a CAS FS). All those calls were coming from deserializing arrays (of which this particular CAS has many).

      It is unnecessary to create FeatureStructure Java objects here. For non-array FSs, XmiCasDeserializer uses low-level CAS APIs in order to avoid this overhead. But for arrays, it currently does not use the low-level APIs.

      1. UIMA-2385.bps.patch
        0.6 kB
        Benjamin Segal

        Activity

        Marshall Schor made changes -
        Status Open [ 1 ] Closed [ 6 ]
        Assignee Adam Lally [ alally ] Marshall Schor [ schor ]
        Fix Version/s 2.4.1SDK [ 12319201 ]
        Resolution Fixed [ 1 ]
        Benjamin Segal made changes -
        Attachment UIMA-2385.bps.patch [ 12527501 ]
        Adam Lally made changes -
        Summary Improve XmiCasDeserializer performance by using low-level CAS APIs to create arrays Improve XmiCasDeserializer performance
        Adam Lally made changes -
        Status In Progress [ 3 ] Open [ 1 ]
        Adam Lally made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Adam Lally made changes -
        Field Original Value New Value
        Assignee Adam Lally [ alally ]
        Adam Lally created issue -

          People

          • Assignee:
            Marshall Schor
            Reporter:
            Adam Lally
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development