Bug 216073 - high CPU usage, long delays on most actions
Summary: high CPU usage, long delays on most actions
Status: RESOLVED UPSTREAM
Alias: None
Product: knode
Classification: Miscellaneous
Component: general (show other bugs)
Version: 4.3.2
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-11-25 11:11 UTC by Marcus Better
Modified: 2009-12-07 18:37 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
OProfile report with call graph information (210.05 KB, text/plain)
2009-11-25 11:15 UTC, Marcus Better
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Marcus Better 2009-11-25 11:11:17 UTC
Version:           4.3.2 (using 4.3.2 (KDE 4.3.2), Debian packages)
Compiler:          cc
OS:                Linux (x86_64) release 2.6.31.6-melech

I experience long delays with common actions such as:
* Clicking on an entry in the newsgroup list: Usually the list item was selected at once, now it takes some five seconds before the UI is updated.
* Restoring the app from minimised state: again it takes several seconds before the UI is rendered.
* Opening a composer window: after the composer window appears, it takes several seconds before it starts accepting keyboard input (but keystrokes are not lost).

All this worked smoothly until a few days ago. I did not upgrade either knode or Qt in between, though I am using Qt 4:4.6.0~rc1-1 from Debian experimental. (It is possible that the problem started after a reboot cycle, so maybe I was running with Qt 4.5 until then.)

Here are the results from oprofile, while clicking around in the newsgroup list in Knode.

CPU: Core 2, speed 800 MHz (estimated)                                                                        
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000                                                                                                           
samples  %        image name               symbol name                                                             
2048     13.2368  libc-2.10.1.so           malloc                                                                  
1667     10.7743  libQtCore.so.4.6.0       QUtf8::convertFromUnicode(QChar const*, int, QTextCodec::ConverterState*)                                                                                                                  
1227      7.9305  libc-2.10.1.so           free                                                                    
1200      7.7559  libkdeui.so.5.3.0        KIconThemeDir::iconPath(QString const&) const                           
978       6.3211  libQtCore.so.4.6.0       QString::realloc(int)                                                   
896       5.7911  libc-2.10.1.so           _int_malloc                                                             
857       5.5390  libc-2.10.1.so           malloc_consolidate                                                      
817       5.2805  libc-2.10.1.so           realloc                                                                 
778       5.0284  libc-2.10.1.so           memcpy                                                                  
570       3.6841  libc-2.10.1.so           _int_free                                                               
566       3.6582  libQtCore.so.4.6.0       QByteArray::resize(int)                                                 
564       3.6453  libkdeui.so.5.3.0        KIconTheme::iconPath(QString const&, int, KIconLoader::MatchType) const 
394       2.5465  libc-2.10.1.so           access                                                                  
369       2.3850  libQtCore.so.4.6.0       QString::append(QString const&)                                         
327       2.1135  libQtCore.so.4.6.0       QString::operator=(QString const&)                                      
162       1.0471  libQtCore.so.4.6.0       QString::grow(int)                                                      
152       0.9824  libQtCore.so.4.6.0       qAllocMore(int, int)                                                    
92        0.5946  libQtCore.so.4.6.0       QTextCodec::codecForLocale()                                            
90        0.5817  libQtCore.so.4.6.0       QString::free(QString::Data*)                                           
89        0.5752  libQtCore.so.4.6.0       QTextCodec::fromUnicode(QString const&) const                           
82        0.5300  libQtCore.so.4.6.0       QByteArray::realloc(int)                                                
76        0.4912  libc-2.10.1.so           _int_realloc                                                            
68        0.4395  libQtCore.so.4.6.0       QChar::fromAscii(char)                                                  
65        0.4201  libz.so.1.2.3.3          /usr/lib/libz.so.1.2.3.3                                                
48        0.3102  libQtCore.so.4.6.0       QString::toLocal8Bit() const                                            
47        0.3038  libQtCore.so.4.6.0       QUtf8Codec::convertFromUnicode(QChar const*, int, QTextCodec::ConverterState*) const                                                                                                       
41        0.2650  libQtCore.so.4.6.0       locale_encode(QString const&)                                           
41        0.2650  libpng12.so.0.40.0       /usr/lib/libpng12.so.0.40.0                                             
30        0.1939  libX11.so.6.3.0          /usr/lib/libX11.so.6.3.0                                                
21        0.1357  libQtCore.so.4.6.0       qFree(void*)                                                            
21        0.1357  libkdeui.so.5.3.0        KIconLoaderPrivate::findMatchingIcon(QString const&, int) const         
17        0.1099  libQtCore.so.4.6.0       QFactoryLoader::instance(QString const&) const                          
17        0.1099  libQtCore.so.4.6.0       qMalloc(unsigned long)                                                  
17        0.1099  libXrender.so.1.3.0      /usr/lib/libXrender.so.1.3.0                                            
16        0.1034  libQtCore.so.4.6.0       QString::fromLatin1_helper(char const*, int)                            
16        0.1034  libQtCore.so.4.6.0       QString::operator<(QString const&) const                                
14        0.0905  libQtCore.so.4.6.0       qstrcmp(QByteArray const&, char const*)                                 
13        0.0840  libc-2.10.1.so           strlen                                                                  
12        0.0776  libQtGui.so.4.6.0        QX11PixmapData::fromImage(QImage const&, QFlags<Qt::ImageConversionFlag>)                                                                                                                  
12        0.0776  libkdeui.so.5.3.0        K3Icon::~K3Icon()                                                       
11        0.0711  libQtCore.so.4.6.0       QFile::encodeName(QString const&)                                       
10        0.0646  libQtCore.so.4.6.0       QString::fromAscii_helper(char const*, int)                             
10        0.0646  libxcb.so.1.1.0          /usr/lib/libxcb.so.1.1.0                                                
9         0.0582  libQtCore.so.4.6.0       QString::fromAscii(char const*, int)                                    
9         0.0582  libstdc++.so.6.0.13      /usr/lib/libstdc++.so.6.0.13                                            
8         0.0517  libQtCore.so.4.6.0       QListData::append()                                                     
8         0.0517  libQtCore.so.4.6.0       qRealloc(void*, unsigned long)                                          
7         0.0452  libQtCore.so.4.6.0       QMutex::lock()                                                          
7         0.0452  libQtCore.so.4.6.0       QString::operator==(QString const&) const                               
6         0.0388  libQtCore.so.4.6.0       QLocale::QLocale(QLocale::Language, QLocale::Country)                   
6         0.0388  libQtGui.so.4.6.0        QGestureManager::filterEventThroughContexts(QMultiHash<QObject*, Qt::GestureType> const&, QEvent*)                                                                                         
6         0.0388  libc-2.10.1.so           strcmp                                                                  
6         0.0388  libpthread-2.10.1.so     pthread_mutex_lock                                                      
5         0.0323  libQtCore.so.4.6.0       QByteArray::QByteArray(char const*)                                     
5         0.0323  libQtCore.so.4.6.0       QMetaObject::cast(QObject*) const                                       
5         0.0323  libQtCore.so.4.6.0       QMutex::unlock()                                                        
5         0.0323  libQtCore.so.4.6.0       QString::split(QChar const&, QString::SplitBehavior, Qt::CaseSensitivity) const                                                                                                            
5         0.0323  libc-2.10.1.so           memset                                                                  
5         0.0323  libkdeui.so.5.3.0        KIconLoader::loadIcon(QString const&, KIconLoader::Group, int, int, QStringList const&, QString*, bool) const                                                                              
5         0.0323  libkhtml.so.5.3.0        cssyyparse(void*)
Comment 1 Marcus Better 2009-11-25 11:15:05 UTC
Created attachment 38566 [details]
OProfile report with call graph information
Comment 2 Peter Hedlund 2009-11-30 19:01:26 UTC
I just wanted to confirm that I see similar behavior since a few days on two x86_64 machines running fully updated Fedora 12.
Comment 3 Marcus Better 2009-12-07 12:57:09 UTC
This went away after I upgraded to Qt 4.6.0 release. Peter, which Qt version are you on?
Comment 4 Peter Hedlund 2009-12-07 18:08:49 UTC
Yes, Qt 4.6.0 final appears to have cured the problem. As far as I am concerned the bug is no longer valid.