Arjan van de Ven schrieb:
> Rudi Lippert wrote:
>> Whenever have a Kopete chat window open, Kopete and X show up very
>> high in the wakeup list.
>>
>> Top causes for wakeups:
>>   36.7% ( 16.2)            kopete : schedule_timeout (process_timeout)
>>   30.8% ( 13.6)                 X : do_setitimer (it_real_fn)
>>
>> Can anyone tell me why this happens or how I can find out myself?
>
> you can start investigating by running
>
> strace -tt -p `pidof kopete`
>
> and see what it's trying to do....

Strace doesn't really help for C++ programs. Like all other KDE
applications kopete uses the qt class framework. The timer is
implemented in the class QTimer -> http://doc.trolltech.com/3.3/qtimer.html
Inside the QEventLoop class the timers are checked, and i guess
somewhere inside the qt code a select is done...

Grepping for QTimer or for the member functions "start\(" or
"changeInterval\(" reveals this possible timer offenders:
kopete/systemtray.cpp:          mBlinkTimer->start( 1000, false );
kopete/contactlist/kopetemetacontactlvi.cpp:                   
mBlinkTimer->start( 400, false );
kopete/chatwindow/chattexteditpart.cpp:                
m_typingRepeatTimer->start( 4000, false
kopete/chatwindow/chatview.cpp:         m_remoteTypingMap[ key ]->start(
6000, true );
[...]
libkopete/ui/kopetelistview.cpp:                d->sortTimer.start( 500,
true );
libkopete/ui/kopetelistview.cpp:                d->scrollAutoHideTimer =
startTimer( 1000 );
[... Some more timers with timeout greater x times 1000 -> seconds)...]

And there are a lot of different other timers implementing various
protocols, like:
protocols/yahoo/yahoowebcam.cpp:        m_updateTimer->start( 250 );

And my best guess are these timers:
libkopete/ui/kopetelistviewitem.cpp:            d->layoutTimer.start(
30, true );
libkopete/ui/kopetelistviewitem.cpp:           
d->layoutAnimateTimer.start();
libkopete/ui/kopetelistviewitem.cpp:            //     
d->layoutAnimateTimer.start( 10 );
libkopete/ui/kopetelistviewitem.cpp:    d->visibilityTimer.start();
libkopete/ui/kopetelistviewitem.cpp:    //d->visibilityTimer.start( 40 );

mfg
thomas













_______________________________________________
Power mailing list
[email protected]
http://www.bughost.org/mailman/listinfo/power

Reply via email to