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

Reply via email to