Edwin Leuven wrote:
Michael Gerz wrote:
Edwin,

could you please check whether the attached patch saves any time in lyx::Changes::lookup(int) const and lyx::Changes::merge() during opening/saving a file?

this is open (save below):

Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total
 time   seconds   seconds    calls  ms/call  ms/call  name
7.41 0.02 0.02 268500 0.00 0.00 lyx::InsetBase::inMathed() const

I don't understand why this is so slow. Could you aded an 'inline' keyword in insetbase.h:75 please:

        inline virtual bool inMathed() const { return false; }

and report back.

7.41 0.04 0.02 10948 0.00 0.00 lyx::support::compare_no_case(std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&) 3.70 0.05 0.01 236382 0.00 0.00 lyx::operator==(lyx::LyXKeySym const&, lyx::LyXKeySym const&)

I've just pushed a fix for this one (hopefully).

3.70 0.06 0.01 191783 0.00 0.00 lyx::DocIterator::inTexted() const

I've inline that.

3.70 0.07 0.01 182929 0.00 0.00 lyx::operator==(lyx::LyXFont::FontBits const&, lyx::LyXFont::FontBits const&) 3.70 0.08 0.01 181982 0.00 0.00 lyx::Paragraph::Pimpl::insertChar(int, wchar_t, lyx::Change const&) 3.70 0.09 0.01 180583 0.00 0.00 lyx::Paragraph::insertChar(int, wchar_t, lyx::LyXFont const&, lyx::Change const&) 3.70 0.10 0.01 151794 0.00 0.00 lyx::InsetText::getText(int) const 3.70 0.11 0.01 116494 0.00 0.00 lyx::DocIterator::inMathed() const

And that.

We can do some more inlining but please do another profile in order to make sure that there is a true saving.

Thanks in advance.

Abdel.

Reply via email to