Issue 101093

Summary: Performance loading charts from XLSX very poor
Product: General Reporter: daniel.rentz
Component: codeAssignee: mikhail.voytenko
Status: CLOSED FIXED QA Contact: issues@framework <issues>
Severity: Trivial    
Priority: P3 CC: ahz001, bjoern.milcke, IngridvdM, issues, Mathias_Bauer
Version: DEV300m38Keywords: performance
Target Milestone: OOo 3.2   
Hardware: All   
OS: All   
Issue Type: DEFECT Latest Confirmation in: ---
Developer Difficulty: ---
Attachments:
Description Flags
Test doc with 20 charts
none
Test doc with 30 charts none

Description daniel.rentz 2009-04-14 17:25:58 UTC
See attached documents.
- chart_perf_020.xlsx contains 20 charts which are loaded in 6 seconds.
- chart_perf_030.xlsx contains 30 charts. DEV300m37 takes 10 seconds to load,
DEV300m38 takes 51 seconds.
Performance is bad when the number of objects exceeds the number of objects to
be cached (Tools->Options->Memory->object cache).
Worse, load time increases exponentially when number of objects increases
linearly. Reason seems to be that for each new inserted chart, all existing
charts are loaded/unloaded again.

May be caused by fix of issue 90614.
Comment 1 daniel.rentz 2009-04-14 17:27:45 UTC
Created attachment 61568 [details]
Test doc with 20 charts
Comment 2 daniel.rentz 2009-04-14 17:28:23 UTC
Created attachment 61569 [details]
Test doc with 30 charts
Comment 3 mikhail.voytenko 2009-04-15 07:07:51 UTC
The fix of the issue 90614 should not trigger loading/unloading of the charts.
But during the unloading of the charts it checks all the charts that are in
running state. This is new and definitive affects performance, especially on
import when the objects are created new.

The solution actually should have linear dependency, since for any new chart it
checks only the already running charts, and the number of the running charts is
constant. So I am confused to hear about exponential load time increasing. Even
if the charts  never set to loaded state back that would mean a quadratic
dependency, but definitely no exponential. I need to debug to understand what
goes wrong here.
Comment 4 daniel.rentz 2009-04-15 10:55:35 UTC
Indeed, looking at my numbers again: load time increased quadratically, not
exponentially.
Comment 5 mikhail.voytenko 2009-04-22 06:49:16 UTC
Ok, the check itself was no real problem, since it does not instantiate new
objects, it just checks the state of already running objects. The problem was
that the check was done for any change in the embedded object, that is actually
unnecessary, since the list of the running objects is not changed in this case.
Fixed.

Actually the check is necessary only for objects that can be unloaded, so the
objects in this document should not be affected by the check at all ( since they
contain changes ). Fixed as well.

Comment 6 daniel.rentz 2009-04-28 10:17:46 UTC
tried the patch with my test documents, fix works as expected.
Comment 7 mikhail.voytenko 2009-05-18 11:16:33 UTC
mav->dr: Please verify the issue in fwk103.
Comment 8 daniel.rentz 2009-05-18 11:46:12 UTC
verified, works as expected in CWS fwk103.
Comment 9 mikhail.voytenko 2009-05-18 12:31:28 UTC
mav->dr: Thank you.
Setting to verified state.
Comment 10 amy2008 2009-07-09 06:37:43 UTC
Verified in DEV300m51
Closing