Reduce Skype CPU usage on Linux

cool_penguin_smallSkype keeps polling frequently to collect information of incoming connections. Valery Yundin came up with the idea of increasing the poll timeout to same more battery life while using skype. The technique uses a shared library loaded along with skype. This makes it a little slower but lowers skype idle CPU load from 4.4% down to 0.9%.

To use the library on Linux you have to compile it from the source. Steps:

  • Get the source
    $ git clone https://github.com/ValdikSS/skype-poll-fix.git
    $ cd skype-poll-fix/
  • Compile
    $ make -f Makefile.linux
  • Run
    $ LD_PRELOAD=/path/to/skype-poll-fix.so skype

There are two environment variables that you can use to file tune the poll-timeout: SET_POLL is a poll() timeout value which would be set if Skype tries to poll with timeout less than MIN_POLL. Both default to 300 ms.

For example, to set all poll() timeouts less than 150 ms to 350 ms:

$ LD_PRELOAD=/path/to/skype-poll-fix.so MIN_POLL=150 SET_POLL=350 skype

Leave a Reply

Your email address will not be published. Required fields are marked *