Issue 96961

Summary: performance: Chart duplicates data in spreadsheet
Product: General Reporter: tom_h <tom.hilinski>
Component: chartAssignee: AOO issues mailing list <issues>
Status: CONFIRMED --- QA Contact:
Severity: Trivial    
Priority: P3 CC: issues, jbf.faure
Version: 3.3.0 or older (OOo)Keywords: performance
Target Milestone: ---   
Hardware: Unknown   
OS: All   
Issue Type: ENHANCEMENT Latest Confirmation in: ---
Developer Difficulty: ---

Description tom_h 2008-12-05 21:03:22 UTC
Adding a chart to a spreadsheet results in creation of a copy of the data being
charted. This data is stored in the "content.xml" data for the chart object.

This is a design defect, resulting in larger than necessary spreadsheet files,
and very, very slow execution for large numbers of rows being charted (e.g., 50K
rows for 2 columns displayed in an XY graph). 

While I don't the details behind the design decision for this, the apparent
solution from my viewpoint, is that chart object should store links to the data
rather than a copy of the data.

This issue degrades the performance of Calc to the point of making it unusable
for large datasets. To illustrate this, create a sheet of two columns of numbers
with 50K rows. Create an XY chart from the 2 columns. Try copy/paste a copy of
the chart. Try to edit a chart's properties. Give yourself a few minutes for
each chart operation, depending upon the speed of your computer.

In one of my spreadsheets, with about 20 cols X 58400 rows, I created 6 XY
charts on another sheet. Took awhile but worked. Saved it. Selected the range
containing the graphs and "exported selected range to PDF". Calc hung - after
about 30 minutes, killed process via Task Mgr. The soffice.bin process was using
about 240MB -- the ODS file is about 6.3 MB with the 6 charts in it, and about
1+ MB with no charts.

version: WinXP sp3, OOo 3.0
hardware: (1) 2GB mem. cpu = Athlon 64 3200, (2) 4GB mem., cpu = core-duo E6850
Comment 1 IngridvdM 2009-01-27 15:15:36 UTC
Yes, this is a point for improvement.
Currently it is necessary to duplicate the data for the scenario that charts are
pasted to somewhere else where the original data is not available. The
copy/paste scenario is solved via save and load, thus the data must be stored in
the file currently.