Apache OpenOffice (AOO) Bugzilla – Issue 96961
performance: Chart duplicates data in spreadsheet
Last modified: 2013-09-25 20:41:53 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
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.