On Oct 26, 2006, at 3:40 AM, Abdelrazak Younes wrote:

Bennett Helm wrote:
Well, here is a profile for Mac. I created a new document with enough text to fill the screen, placed the (invisible) cursor in the middle of the screen, started profiling and typed at a brisk pace for 30 seconds. (As I type this, LyX is still churning away displaying what I typed on screen very slowly.) Here's the result (attached).


Very nice Bennett but, unfortunately I am missing one level at this node:

+ 12666.6 ms lyx::(anonymous namespace)::RowPainter::paintText() (lyx) | + 10890.5 ms lyx::frontend::QLPainter::text(int, int, wchar_t const*,
 | | + 146.5 ms lyx::ucs4_to_qstring(wchar_t const*, unsigned long,
 | | | + 50.2 ms QString::operator[](int) (lyx)
 | | | |   40.0 ms std::vector<lyx::Changes::ChangeRange,
 | | | + 43.0 ms QCharRef::operator=(QChar const&) (lyx)
 | | | |   35.9 ms std::vector<lyx::Changes::ChangeRange,
 | | |   4.1 ms lyx::Changes::lookup(int) const (lyx)
 | | + 98.3 ms QString::~QString [in-charge]() (lyx)
 | | |   7.2 ms QString::~QString [in-charge]() (lyx)
 | |   44.1 ms operator new(unsigned long) (libstdc++.6.dylib)
 | |   22.5 ms __cxa_guard_acquire (libstdc++.6.dylib)
 | | + 18.4 ms lyx::LyXFont::realColor() const (lyx)
 | | |   2.0 ms lyx::frontend::GuiFontLoader::metrics(lyx::LyXFont
 | | + 14.3 ms lyx::frontend::GuiFontLoader::fontinfo(lyx::LyXFont
 | | |   8.2 ms lyx::LyXFont::realShape() const (lyx)
 | | |   2.1 ms lyx::Changes::lookup(int) const (lyx)
 | | + 13.3 ms lyx::frontend::QLPainter::setQPainterPen(
 | | |   2.0 ms lyx::LyXFont::realShape() const (lyx)
 | |   6.1 ms lyx::InsetExternalParams::read(lyx::Buffer const&,
 | |   5.1 ms lyx::LyXTextClass::load(std::basic_string<char,
 | |   4.1 ms operator delete(void*) (libstdc++.6.dylib)
 | | + 3.1 ms lyx::LyXFont::realShape() const (lyx)
 | |   2.0 ms lyx::BufferView::gotoLabel(std::basic_string<wchar_t,
 | |   1.0 ms std::_Vector_base<wchar_t, std::allocator<wchar_t>
 | |   1.0 ms lyx::BufferView::dispatch(lyx::FuncRequest const&) (lyx)
 | |   1.0 ms lyx::BufferView::~BufferView [in-charge]() (lyx)
 | + 440.7 ms lyx::LyXText::getFont(lyx::Paragraph const&, int) const

As you can see in the second line, QLPainter::text() take the most time. This is not surprising but the following lines between this node an the following node at the same level (LyXText::getFont()) don't make the sum. There's some info in between that is missing. Could you please (when you have time) have a look at it?

There's no info I have that you don't have. (Doesn't that mean that QLPainter::text() is eating up more than 10000 ms or so all on its own?)

To confirm this, I've run the profile again. I've put a screen shot of Shark's output here:

<http://edisk.fandm.edu/bennett.helm/LyX/lyx-mac-150-profile-2.jpg.zip>

(This one is even worse: QLPainter::text() eats up over 17 seconds out of the 30 second profile -- if I understand it correctly.)

Bennett

Reply via email to