- PVSM.RU - https://www.pvsm.ru -

Уменьшаем потребление CPU Skype под Linux и Mac OS

image
Skype. Как мы его любим и одновременно ненавидим. Долгое время, Skype был единственной программой, которую я старался закрывать при работе лаптопа от батареи: потреблял около 4% CPU, будил процессор 250-300 раз в секунду, ничего при этом не делая, оставляя процессору меньше времени на нахождение в более энергосберегающем состоянии.

Увидел я однажды комментарий [1] пользователя Vayun [2]:

Возможно проблема проявляется не у всех, проверить легко: запускаем скайп, запускаем top (на ноутбуке работающем от батареи наглядней будет powertop) и смотрим сколько он отъедает cpu.

Я долго не возился, придавил только poll, увеличив timeout. Это даёт наибольший выигрыш (уменьшая %CPU скайпа раз в 5), но наверное можно лучше.

Собственно, вот: Skype-poll-fix [3]. Увеличивает таймаут у вызовов poll (Linux) и kevent (Mac OS), снижая потребление процессора в 4-5 раз.

Как установить

Для Linux:

git clone https://github.com/ValdikSS/skype-poll-fix.git
cd skype-poll-fix
make -f Makefile.linux
LD_PRELOAD=./skype-poll-fix.so skype

Для Mac OS:

git clone https://github.com/ValdikSS/skype-poll-fix.git
cd skype-poll-fix
make -f Makefile.macos
DYLD_FORCE_FLAT_NAMESPACE=1 DYLD_INSERT_LIBRARIES=./skype-poll-fix.dylib /Applications/Skype.app/Contents/MacOS/Skype

Можно управлять таймаутами через переменные окружения MIN_POLL и SET_POLL. Таймаут установится в значение SET_POLL, если таймаут, который установил Skype, меньше MIN_POLL. По умолчанию, оба значения равняются 300 мс.

Автор: ValdikSS

Источник [4]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/skype/73198

Ссылки в тексте:

[1] комментарий: http://habrahabr.ru/post/236629/#comment_7963611

[2] Vayun: http://habrahabr.ru/users/vayun/

[3] Skype-poll-fix: https://github.com/ValdikSS/skype-poll-fix

[4] Источник: http://habrahabr.ru/post/242043/