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)

Reply via email to