Nimarukan created ODFTOOLKIT-426:
------------------------------------
Summary: PERFORMANCE: simple Document.getCopyStyleList
improvements to reduce String allocation, hashing, etc.
Key: ODFTOOLKIT-426
URL: https://issues.apache.org/jira/browse/ODFTOOLKIT-426
Project: ODF Toolkit
Issue Type: Improvement
Components: simple api
Environment: 0.8.2-incubating-SNAPSHOT, jdk1.8.0_77, win7
Reporter: Nimarukan
Priority: Minor
org.odftoolkit.simple
Document.getCopyStyleList
is a top hotspot in a (NetBeans) sampled profiling run of test_1 of
https://issues.apache.org/jira/secure/attachment/12795379/odftoolkit-performance-test.zip
When a sheet is copied from one document to another, simple.Document also
merges metadata such as styles. For each style it iterates over every cell
with that style. The current code can be improved by reusing constructed
strings (also reducing garbage collection), removing unnecessary hash table
lookups, etc.
After these changes, Document.getCopyStyleList takes about 1/16th the original
time in the profiled run.
(This is surprising. Maybe it enables some optimizations that eliminate String
creation in an inner loop in common cases.)
(The gain is not due to an error of omission: The template.ods source file used
in this performance test is a spreadsheet with styled cells. The differences
between the ods xml files of the result spreadsheet produced before these
patches are applied, and the ods xml files of the result spreadsheet produced
after these patches are applied, are only in times and in random strings
appended to style names. So these changes did not significantly change the
result spreadsheet.)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)