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.
|Field||Original Value||New Value|
|Assignee||Adam Lally [ alally ]|
|Status||Open [ 1 ]||In Progress [ 3 ]|
|Status||In Progress [ 3 ]||Open [ 1 ]|
|Summary||Improve XmiCasDeserializer performance by using low-level CAS APIs to create arrays||Improve XmiCasDeserializer performance|
|Status||Open [ 1 ]||Closed [ 6 ]|
|Assignee||Adam Lally [ alally ]||Marshall Schor [ schor ]|
|Fix Version/s||2.4.1SDK [ 12319201 ]|
|Resolution||Fixed [ 1 ]|