[Konsole-devel] [konsole] [Bug 354082] high cpu usage for screen redrawing with qt5.5

wojtek via KDE Bugzilla bugzilla_noreply at kde.org
Wed Oct 21 13:26:15 UTC 2015


https://bugs.kde.org/show_bug.cgi?id=354082

--- Comment #3 from wojtek <wojtask9 at wp.pl> ---
QPainter::drawText() causes high CPU usage.

Callgrind when CPU goes 100%

  Frame:            Ir Backtrace for Thread 1
   [ 0]      4,731,312 0x0000000000042a20 (315421 x)
   [ 1]    139,363,373 __strtof_internal (367991 x)
   [ 2]    769,839,725 _IO_vfscanf (893695 x)
   [ 3]    902,211,714 vsscanf (893695 x)
   [ 4]    223,944,842 sscanf (52570 x)
   [ 5]    125,954,300 FT_Library_SetLcdFilter (26285 x)
   [ 6]  5,813,230,932 QFontEngineFT::loadGlyph(QFontEngineFT::QGlyphSet*,
unsigned int, QFixed, QFontEngine::GlyphFormat, bool) const (52512 x)
   [ 7]  4,526,732,790 QFontEngineFT::loadGlyphFor(unsigned int, QFixed,
QFontEngine::GlyphFormat, QTransform const&, bool) (26545 x)
   [ 8]  5,876,314,105 QFontEngineFT::lockedAlphaMapForGlyph(unsigned int,
QFixed, QFontEngine::GlyphFormat, QTransform const&, QPoint*) (26545 x)
   [ 9]  5,880,075,343 QRasterPaintEngine::drawCachedGlyphs(int, unsigned int
const*, QFixedPoint const*, QFontEngine*) (245 x)
   [10]  5,881,099,208 QRasterPaintEngine::drawTextItem(QPointF const&,
QTextItem const&) (245 x)
   [11]  5,882,249,055 0x00000000002e0500 (245 x)
   [12]  5,866,103,556 QTextLine::draw(QPainter*, QPointF const&,
QTextLayout::FormatRange const*) const (215 x)
   [13]  5,935,230,553 0x00000000002d6620 (245 x)
   [14]  5,917,082,161 QPainter::drawText(QRect const&, int, QString const&,
QRect*) (214 x)
   [15]  5,917,687,848 Konsole::TerminalDisplay::drawCharacters(QPainter&,
QRect const&, QString const&, Konsole::Character const*, bool) (214 x)
   [16]  5,918,124,988 Konsole::TerminalDisplay::drawTextFragment(QPainter&,
QRect const&, QString const&, Konsole::Character const*) (214 x)
   [17]  3,910,286,730 Konsole::TerminalDisplay::drawContents(QPainter&, QRect
const&) (6 x)
   [18]  3,848,926,916 Konsole::TerminalDisplay::paintEvent(QPaintEvent*) (4 x)
   [19]  3,848,949,537 QWidget::event(QEvent*) (7 x)
   [20]  5,943,738,468 Konsole::TerminalDisplay::event(QEvent*) (107 x)
   [21]  5,984,771,204 QApplicationPrivate::notify_helper(QObject*, QEvent*)
(2415 x)
   [22]  5,984,939,256 QApplication::notify(QObject*, QEvent*) (2415 x)
   [23]  5,951,145,765 QCoreApplication::notifyInternal(QObject*, QEvent*) (36
x)
   [24]  3,864,521,726 QWidgetPrivate::sendPaintEvent(QRegion const&) (7 x)
   [25]  3,868,309,475 QWidgetPrivate::drawWidget(QPaintDevice*, QRegion
const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) (5 x)
   [26]  3,855,962,842 0x00000000001685a0 (3 x)
   [27]  3,855,963,001 0x0000000000169ca0 (4 x)
   [28]  3,855,963,174 QWidgetPrivate::syncBackingStore() (4 x)
   [29]  3,856,152,888 QWidget::event(QEvent*) (159 x)
   [30]  3,856,163,443 QMainWindow::event(QEvent*) (155 x)
   [31]  3,856,267,760 KMainWindow::event(QEvent*) (154 x)
   [32]  3,856,086,968 KXmlGuiWindow::event(QEvent*) (16 x)
   [33]  6,156,252,233 QApplicationPrivate::notify_helper(QObject*, QEvent*)
(491 x)
   [34]  6,156,285,205 QApplication::notify(QObject*, QEvent*) (491 x)
   [35]  4,041,255,892 QCoreApplication::notifyInternal(QObject*, QEvent*) (395
x)
   [36]  4,041,424,608 QCoreApplicationPrivate::sendPostedEvents(QObject*, int,
QThreadData*) (96 x)
   [37]  4,041,432,288 QCoreApplication::sendPostedEvents(QObject*, int) (96 x)
   [38]  4,041,433,720 0x00000000002a5200 (96 x)
   [39]  6,156,572,354 g_main_context_dispatch (110 x)
   [40]  6,156,851,601 0x000000000004b920 (110 x)
   [41]  5,985,678,816 g_main_context_iteration (105 x)
   [42]  5,985,776,834
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (105
x)
   [43]  6,156,933,240 0x000000000006d3a0 (106 x)
   [44]  6,156,934,088
QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (106 x)
   [45]  6,156,935,580 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(1 x)
   [46]  6,156,938,243 0x0000000000015060 (1 x)
   [47]  6,156,938,674 QCoreApplication::exec() (1 x)
   [48]  6,156,941,246 0x0000000000015060 (1 x)
   [49]  6,157,137,483 QGuiApplication::exec() (1 x)
   [50]  6,157,139,997 0x0000000000015060 (1 x)
   [51]  6,157,140,003 QApplication::exec() (1 x)
   [52]  6,157,142,492 0x0000000000015060 (1 x)
   [53]  6,411,194,200 kdemain (1 x)
   [54]  6,411,194,808 0x0000000000015060 (1 x)
   [55]  6,411,194,823 main (1 x)
   [56]  6,411,195,026 (below main) (1 x)
   [57]  6,411,200,813 0x0000000000015060 (1 x)
   [58]  6,411,200,829 _start (1 x)
   [59]              . 0x0000000000000c40

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the konsole-devel mailing list