https://bugs.freedesktop.org/show_bug.cgi?id=81038
Priority: medium
Bug ID: 81038
CC: [email protected]
Assignee: [email protected]
Summary: performance: 10% of load: un-necessary pImpl
Severity: normal
Classification: Unclassified
OS: All
Reporter: [email protected]
Hardware: Other
Status: NEW
Version: 4.4.0.0.alpha0+ Master
Component: Libreoffice
Product: LibreOffice
bug#66507 has a nice profile for a particularly slow to calculate document
which shows that the FormulaTokenIterator::Jump and Push / Pop methods are
particularly expensive source of the slowness there - primarily because of all
the allocation and freeing they do of ImpTokenIterator structures.
include/formula/tokenarray.hxx has:
class FORMULA_DLLPUBLIC FormulaTokenIterator
{
ImpTokenIterator* pCur;
We should make the ImpTokenIterator struct a private (but present in the
header) class of FormulaTokenIterator.
We should also undo this very strange manual memory management / fragile linked
list nonsense, and instead use a simple in-place vector [ie. not doing all this
allocation ]. We should just push_back and pop stuff onto the vector and avoid
the linked list sillies.
Of the 390bn cycles of the complete load/edit/save trace here, ~35bn are spent
allocating and freeing this structure :-)
--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs