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

Bennett> I've posted a new profile
Bennett> (<http://edisk.fandm.edu/bennett.helm/LyX/shark-profile-5.txt.zip>)
Bennett> that took longer: I typed for about 1 minute, waited for LyX
Bennett> to catch up, and stopped profiling.

The drawing part of the profile can be summarized as follows:

+ 74.1% QFontEngineMac::doTextTask(QChar const*, int, int, int, unsigned char, 
int, int, QPaintDevice*, QRegion const*) const (lyx)
| + 53.3% QFontEngineMac::draw(QPainter*, int, int, QTextEngine const*, 
QScriptItem const*, int) (lyx)
| | + 53.0% QPainter::drawText(int, int, QString const&, int, int, 
QPainter::TextDirection) (lyx)
| | | + 53.0% QPainter::drawText(int, int, QString const&, int, 
QPainter::TextDirection) (lyx)
| | + 0.3% QPainter::drawTextItem(int, int, QTextItem const&, int) (lyx)
| + 20.8% QFontMetrics::width(QChar) const (lyx)
| | + 19.9% QLFontInfo::width(unsigned short) const (lyx)
| | | + 16.6% LyXText::singleWidth(Paragraph const&, int, char, LyXFont const&) 
const (lyx)
| | | + 3.3% font_metrics::width(char const*, unsigned long, LyXFont const&) 
(lyx)
| | | + 0.0% (anonymous namespace)::RowPainter::paintChars(int&, LyXFont, bool, 
bool) (lyx)
| | + 0.9% LyXText::singleWidth(Paragraph const&, int, char, LyXFont const&) 
const (lyx)

So drawing is more expensive than finding char width (especially when
considering that a fair amount of width call are generated by
QLPainter::text).

JMarc

Reply via email to