>>>>> "Bennett" == Bennett Helm <[EMAIL PROTECTED]> writes:

Bennett> Finally, I applied the patch to the version of lyx compiled
Bennett> with gcc-3.3 with profiling info, ran Shark (in the same way
Bennett> I did before), and placed the report here:
Bennett> <http://edisk.fandm.edu/
Bennett> bennett.helm/LyX/shark-profile-2.txt.zip>.

This Shark profile is very interesting (i.e. it works now!)

Basically it says

100% lyx
  98.4% LyXText::dispatch(LCursor&, FuncRequest&) (lyx)
    78.8% BufferView::Pimpl::update(Update::flags) (lyx)
      58.8% LyXScreen::redraw(BufferView&, ViewMetricsInfo const&) (lyx)
        52.4% (anonymous namespace)::RowPainter::paintText() (lyx)
          42.6% (anonymous namespace)::RowPainter::paintChars(int&, LyXFont, 
bool, bool) (lyx)
            34.0% QLPainter::text(int, int, char const*, unsigned long, LyXFont 
const&) (lyx)
            7.4% font_metrics::width(char const*, unsigned long, LyXFont 
const&) (lyx)
      19.3% BufferView::Pimpl::metrics(bool) (lyx)
    19.6% TransManager::TranslateAndInsert(char, LyXText*) (lyx)

At the end, there is also a list of methods and total time they use. I
find there
- 73.4% QFontEngineMac::doTextTask(QChar const*, int, int, int, unsigned char, 
int, int, QPaintDevice*, QRegion const*) const (lyx)

AFAIK, doTextTask is used for painting and metrics (at least). This
means that at least 73.4% of the time is used in Qt/Mac text engine.

So basically we draw too much :)

Bennett, as I wrote before, a Shark output on a binary compiled
_without_ profile information (and a Qt without profile information)
would give a better idea of what happens.

JMarc

Reply via email to