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