Bug 88623 - FILESAVE: slow data structure in XLSX saving
Summary: FILESAVE: slow data structure in XLSX saving
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
4.5.0.0.alpha0+ Master
Hardware: Other All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard: target:4.5.0 target:4.4.1
Keywords: perf
Depends on:
Blocks:
 
Reported: 2015-01-20 11:27 UTC by László Németh
Modified: 2021-03-02 15:32 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:


Attachments
cycle estimation with std::deque (272.09 KB, image/png)
2015-01-20 11:27 UTC, László Németh
Details
cycle estimation with std::vector (259.62 KB, image/png)
2015-01-20 11:27 UTC, László Németh
Details

Note You need to log in before you can comment on or make changes to this bug.
Description László Németh 2015-01-20 11:27:02 UTC
Created attachment 112536 [details]
cycle estimation with std::deque

Replacing std::deque with std::vector in XclExpMultiCellBase results 4.5 times difference in the cost of AppendXfld() during the saving of a bigger XLSX document, resulting more than 15% speed up in file saving (kcachegrind screen shots are attached).
Comment 1 László Németh 2015-01-20 11:27:46 UTC
Created attachment 112537 [details]
cycle estimation with std::vector
Comment 2 Commit Notification 2015-01-20 11:48:04 UTC
László Németh committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=352cdc8bf8ee7bbb821d1244df6dc35bcc32f52e

fdo#88623 replace std::deque with std::vector in xlsx saving

It will be available in 4.5.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 3 Commit Notification 2015-01-20 13:48:03 UTC
László Németh committed a patch related to this issue.
It has been pushed to "libreoffice-4-4":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=b81107be0d9c23c9ddf9ff6dbc8a521f92d6c3f3&h=libreoffice-4-4

fdo#88623 replace std::deque with std::vector in xlsx saving

It will be available in 4.4.1.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.