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

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

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

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

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

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


    Для Linux:
    git clone https://github.com/ValdikSS/skype-poll-fix.git
    cd skype-poll-fix
    make
    LD_PRELOAD=./skype-poll-fix.so skype
    

    Для Mac OS:
    git clone https://github.com/ValdikSS/skype-poll-fix.git
    cd skype-poll-fix
    make
    DYLD_INSERT_LIBRARIES=./skype-poll-fix.dylib /Applications/Skype.app/Contents/MacOS/Skype
    

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

    Подробнее
    Реклама
    Комментарии 67
    • 0
      Сделать бы еще удобный враппер оборачивающий скайп в контейнер типа docker чтобы не давать ему лазить по системе.
      • +2
        Можно от бесправного юзера запускать, как вариант.
          • 0
            В маке есть application firewall но я не осилил.
            • 0
              Интереснейшая штука! Спасибо за ссылки.
            • +1
              Дык, собственно, поставьте докер (или lxc, или просто чрут+смена-юзера-на-не-рут) и поставьте в него скайп. Может, эта статья как-то вам поможет: habrahabr.ru/post/240509
              • 0
                А в маке? Да и судя по статье это уже ооочень непросто.
                • +6
                  А зачем вам захотелось спрятать скайп в контейнер? Потому что вы недоверяете проприетарному софту, который может за вами следить? А раз так, то зачем тогда вы юзаете мак?
                  • +5
                    Зачем впадать в паранойю?

                    Как вариант, для изоляции некоторого ПО (в данном случае это Skype) от основной системы.
                    Лично мне спокойнее, когда любое ПО (не обязательно проприетарное, от злющих корпораций, следящих за мной) не может повлиять на стабильность моей системы, не сможет внести туда изменения ЛЮБЫЕ.
                    Да, с открытым ПО это проще контролировать, но почему бы просто не ГАРАНТИРОВАННО изолировать его?
                    • +4
                      Открытое ПО проще контролировать — если там есть какая-то дыра в безопасности или существенная ошибка нарушающая стабильность системы, то и самому можно код посмотреть и общественность все это быстро найдет. Вот возьмем например openSSL — библиотека с открытым кодом, все просто и безопасно.
                      • 0
                        Да я согласен с вами на 100%.

                        Я просто хотел сказать, что всегда приятно/удобно/спокойно, когда вы можете взять и удалить приложение из системы и ГАРАНТИРОВАННО не затронуть никаких компонентов, не оставить следов использования и т.д.

                        Хороший пример (возведенный в абсолют) — использование виртуальных машин. Я могу держать свою систему (хост) в чистоте, полностью изолировав ее от влияния.
                        • +2
                          Вот возьмем например openSSL — библиотека с открытым кодом, все просто и безопасно.

                          Да я согласен с вами на 100%.

                          Вы же понимаете, что это был сарказм, да?
                          • 0
                            Тем не менее, благодаря открытости, уязвимость была разрекламирована и закрыта в считанные дни, а вот например, некотороые закрытые прогаммы (IIS) изобиловали дырами годами, причём на рабочих системах.
                            • 0
                              Так и Heartbleed только через 3 года нашли опубликовали. Время существования не равно времени выпука заплатки.
              • +1
                Пишут что можно через докер wiki.archlinux.org/index.php/Skype#Docker не проверял пока что
                • 0
                  Серия статей про lxc
                  www.stgraber.org/2013/12/20/lxc-1-0-blog-post-series/
                  Конкретно
                  www.stgraber.org/2014/02/09/lxc-1-0-gui-in-containers/
                  Все работает, проверено электрониками.
                  Ну или ссылки на статьи про докер которые тут уже были.
                  • 0
                    Для этого можно использовать filrejail l3net.wordpress.com/projects/firejail/ — достаточно удобная штука. Запуск skype в «песочнице»:
                    firejail skype
                    
                  • +3
                    Это блин как же топорно оно написано если удлиннением poll интервалов лечится? Или только в idle оно так? А не логировали для интереса чего там Skype изначально в таймаут ставит.
                    Или может в чем другом дело? Давненько уже было, но у знакомца на ноутбуке долгое время все что общалось с сетью грузило процессор даже в idle, а работая отжирало вообще по самое не хочу. Причем другая (вроде предыдущая) ревизия того же ноута вела себя совсем по другому. Для чистоты эксперемента грузили оба с одного live-cd. Та же картина маслом.
                    Так вот, вылечилось тогда само после обновления то ли дров для вайфая, то ли kernel когда обновился. И в changelog что-то про то было, за давностью уже и не упомнить.
                    [зануда on]
                    Глянул мельком код, у вас в случае APPLE при (timeout->tv_nsec >= MIN_POLL * 1000000) функция что вернет? И потом atoi без проверки на корректность — ну не камильфо как-то (очепятка в env иле чего еще и atoi вернет 0 — при таком таймауте cpu будет отъедать еще круче...)
                    [зануда off]
                    • +3
                      Или только в idle оно так?
                      Быть может, понижает потребление CPU и в разговоре, я не проверял, но в IDLE точно падает.

                      А не логировали для интереса чего там Skype изначально в таймаут ставит.
                      От 0 (нет таймаута) до просто маленьких величин, вроде 10-30. Видимо, что-то с архитектурой намудрили.

                      функция что вернет?
                      А ничего и не вернет. Спасибо за зоркий глаз, починено.
                    • НЛО прилетело и опубликовало эту надпись здесь
                      • 0
                        Код запросто может быть разным для разных ОС (#ifdef'ы всякие, например)
                      • 0
                        На OS X 10.10 падает.
                        Если интересно. Осторожно, много текста.
                        Process:               Skype [3628]
                        Path:                  /Applications/Skype.app/Contents/MacOS/Skype
                        Identifier:            Skype
                        Version:               7.1 (7.1.0.665)
                        Code Type:             X86-64 (Native)
                        Parent Process:        zsh [1294]
                        Responsible:           Terminal [374]
                        User ID:               501
                        
                        Date/Time:             2014-10-30 23:07:37.605 -0400
                        OS Version:            Mac OS X 10.10 (14A389)
                        Report Version:        11
                        Anonymous UUID:        1C5CB34E-B9C1-C016-1270-22079286C134
                        
                        
                        Time Awake Since Boot: 6700 seconds
                        
                        Crashed Thread:        0  Dispatch queue: com.apple.main-thread
                        
                        Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
                        Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000066
                        
                        VM Regions Near 0x66:
                        --> 
                            __TEXT                 0000000100000000-000000010193a000 [ 25.2M] rwx/rwx SM=COW  /Applications/Skype.app/Contents/MacOS/Skype
                        
                        Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
                        0   com.skype.skype               	0x000000010059fba0 0x100000000 + 5897120
                        1   com.skype.skype               	0x0000000100583554 0x100000000 + 5780820
                        2   com.skype.skype               	0x000000010058331b 0x100000000 + 5780251
                        
                        Thread 0 crashed with X86 Thread State (64-bit):
                          rax: 0x0000000000000066  rbx: 0x0000000100000a98  rcx: 0x0000000000000002  rdx: 0x00007fff739f9118
                          rdi: 0x0000000000000000  rsi: 0x0000080000000800  rbp: 0x00007fff5fbff280  rsp: 0x00007fff5fbfefa0
                           r8: 0x00007fff5fbfeec0   r9: 0x00007fff7250b300  r10: 0x0000000000000090  r11: 0x0000000101e00000
                          r12: 0x000000000000000e  r13: 0x0000000100000000  r14: 0x0000000100000020  r15: 0x0000000000000002
                          rip: 0x000000010059fba0  rfl: 0x0000000000010246  cr2: 0x0000000000000066
                          
                        Logical CPU:     3
                        Error Code:      0x00000006
                        Trap Number:     14
                        
                        
                        Binary Images:
                               0x100000000 -        0x100afefff +com.skype.skype (7.1 - 7.1.0.665) <3ECC09C3-C791-360D-9704-5513EF8BBFD9> /Applications/Skype.app/Contents/MacOS/Skype
                               0x101bdd000 -        0x101bddfff +skype-poll-fix.dylib (0) <A1579595-1CFC-3F11-849D-AF34D97C6B8C> /Users/USER/*/skype-poll-fix.dylib
                            0x7fff629d2000 -     0x7fff62a08837  dyld (353.2.1) <4696A982-1500-34EC-9777-1EF7A03E2659> /usr/lib/dyld
                            0x7fff81c34000 -     0x7fff81ca3fff  com.apple.SearchKit (1.4.0 - 1.4.0) <BFD6D876-36BA-3A3B-9F15-3E2F7DE6E89D> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
                            0x7fff81ca4000 -     0x7fff81cfeff7  com.apple.LanguageModeling (1.0 - 1) <ACA93FE0-A0E3-333E-AE3C-8EB7DE5F362F> /System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling
                            0x7fff81cff000 -     0x7fff81cfffff  libOpenScriptingUtil.dylib (162) <EFD79173-A9DA-3AE6-BE15-3948938204A6> /usr/lib/libOpenScriptingUtil.dylib
                            0x7fff81f67000 -     0x7fff81f80ff7  com.apple.CFOpenDirectory (10.10 - 187) <0ECA5D80-A045-3A2C-A60C-E1605F3AB6BD> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
                            0x7fff82014000 -     0x7fff82015fff  libDiagnosticMessagesClient.dylib (100) <2EE8E436-5CDC-34C5-9959-5BA218D507FB> /usr/lib/libDiagnosticMessagesClient.dylib
                            0x7fff82123000 -     0x7fff8214efff  libc++abi.dylib (125) <88A22A0F-87C6-3002-BFBA-AC0F2808B8B9> /usr/lib/libc++abi.dylib
                            0x7fff82158000 -     0x7fff822c3ff7  com.apple.audio.toolbox.AudioToolbox (1.12 - 1.12) <5C6DBEB4-F2EA-3262-B9FC-AFB89404C1DA> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
                            0x7fff822c4000 -     0x7fff822caff7  libsystem_networkextension.dylib (167.1.10) <29AB225B-D7FB-30ED-9600-65D44B9A9442> /usr/lib/system/libsystem_networkextension.dylib
                            0x7fff82300000 -     0x7fff8270dff7  libLAPACK.dylib (1128) <F9201AE7-B031-36DB-BCF8-971E994EF7C1> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
                            0x7fff8290f000 -     0x7fff82a55fef  libsqlite3.dylib (168) <8B78BED1-7B9B-3943-80DC-0871015AEAC4> /usr/lib/libsqlite3.dylib
                            0x7fff82a56000 -     0x7fff82a5cfff  libsystem_trace.dylib (72.1.3) <A9E6B7D8-C327-3742-AC54-86C94218B1DF> /usr/lib/system/libsystem_trace.dylib
                            0x7fff82de1000 -     0x7fff82e55ff3  com.apple.securityfoundation (6.0 - 55126) <E7FB7A4E-CB0B-37BA-ADD5-373B2A20A783> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
                            0x7fff82e56000 -     0x7fff82e5aff7  com.apple.TCC (1.0 - 1) <AFC32F8F-BCD5-313C-B66E-5AB8591EC066> /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC
                            0x7fff8313c000 -     0x7fff83174ffb  libsystem_network.dylib (411) <C0B2313D-47BE-38A9-BEE6-2634A4F5E14B> /usr/lib/system/libsystem_network.dylib
                            0x7fff83418000 -     0x7fff83432ff7  libextension.dylib (55) <17514AB2-C503-3D49-A725-EBC1140567A6> /usr/lib/libextension.dylib
                            0x7fff834f8000 -     0x7fff83564fff  com.apple.framework.CoreWLAN (5.0 - 500.35.2) <ACBAAB0A-BCC7-37CF-AAFB-2DA1733F2682> /System/Library/Frameworks/CoreWLAN.framework/Versions/A/CoreWLAN
                            0x7fff83ac0000 -     0x7fff83ae8fff  libsystem_info.dylib (459) <B85A85D5-8530-3A93-B0C3-4DEC41F79478> /usr/lib/system/libsystem_info.dylib
                            0x7fff83d1c000 -     0x7fff83d1dff7  libsystem_blocks.dylib (65) <9615D10A-FCA7-3BE4-AA1A-1B195DACE1A1> /usr/lib/system/libsystem_blocks.dylib
                            0x7fff83d1e000 -     0x7fff83daafff  libsystem_c.dylib (1044.1.2) <C185E862-7424-3210-B528-6B822577A4B8> /usr/lib/system/libsystem_c.dylib
                            0x7fff83daf000 -     0x7fff83e27ff7  com.apple.SystemConfiguration (1.14 - 1.14) <C269BCFD-ACAB-3331-BC7C-0430F0E84817> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
                            0x7fff84119000 -     0x7fff84126ff7  libbz2.1.0.dylib (36) <2DF83FBC-5C08-39E1-94F5-C28653791B5F> /usr/lib/libbz2.1.0.dylib
                            0x7fff842b8000 -     0x7fff842c3ff7  libkxld.dylib (2782.1.97) <CB1A1B57-54BE-3573-AE0C-B90ED6BAEEE2> /usr/lib/system/libkxld.dylib
                            0x7fff842c4000 -     0x7fff842ceff7  com.apple.NetAuth (5.0 - 5.0) <B9EC5425-D38D-308C-865F-207E0A98BAC7> /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth
                            0x7fff843e2000 -     0x7fff843e5fff  com.apple.xpc.ServiceManagement (1.0 - 1) <7E9E6BB7-AEE7-3F59-BAC0-59EAF105D0C8> /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement
                            0x7fff8446f000 -     0x7fff84477fff  libsystem_platform.dylib (63) <64E34079-D712-3D66-9CE2-418624A5C040> /usr/lib/system/libsystem_platform.dylib
                            0x7fff84478000 -     0x7fff84480fff  libsystem_dnssd.dylib (561.1.1) <62B70ECA-E40D-3C63-896E-7F00EC386DDB> /usr/lib/system/libsystem_dnssd.dylib
                            0x7fff844ac000 -     0x7fff844f2ff7  libauto.dylib (186) <A260789B-D4D8-316A-9490-254767B8A5F1> /usr/lib/libauto.dylib
                            0x7fff84626000 -     0x7fff8463cff7  libsystem_asl.dylib (267) <F153AC5B-0542-356E-88C8-20A62CA704E2> /usr/lib/system/libsystem_asl.dylib
                            0x7fff8463d000 -     0x7fff84641fff  libsystem_stats.dylib (163.1.4) <1DB04436-5974-3F16-86CC-5FF5F390339C> /usr/lib/system/libsystem_stats.dylib
                            0x7fff84f09000 -     0x7fff84f09fff  com.apple.audio.units.AudioUnit (1.12 - 1.12) <76EF1C9D-DEA4-3E55-A134-4099B2FD2CF2> /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
                            0x7fff84fa0000 -     0x7fff84fa9fff  libsystem_pthread.dylib (105.1.4) <26B1897F-0CD3-30F3-B55A-37CB45062D73> /usr/lib/system/libsystem_pthread.dylib
                            0x7fff84fb3000 -     0x7fff84fcdff7  liblzma.5.dylib (7) <1D03E875-A7C0-3028-814C-3C27F7B7C079> /usr/lib/liblzma.5.dylib
                            0x7fff85107000 -     0x7fff8511eff7  libLinearAlgebra.dylib (1128) <E78CCBAA-A999-3B65-8EC9-06DB15E67C37> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib
                            0x7fff8511f000 -     0x7fff85387ffb  com.apple.security (7.0 - 57031.1.35) <96141D1F-614E-32C4-8AC2-F47481F23F43> /System/Library/Frameworks/Security.framework/Versions/A/Security
                            0x7fff853e8000 -     0x7fff8577efff  com.apple.CoreFoundation (6.9 - 1151.16) <F2B088AF-A5C6-3FAE-9EB4-7931AF6359E4> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
                            0x7fff8577f000 -     0x7fff85790fff  libcmph.dylib (1) <46EC3997-DB5E-38AE-BBBB-A035A54AD3C0> /usr/lib/libcmph.dylib
                            0x7fff8586e000 -     0x7fff8588bfff  libsystem_kernel.dylib (2782.1.97) <93E0E0A9-75B6-3904-BB4E-4BC7C05F4B6B> /usr/lib/system/libsystem_kernel.dylib
                            0x7fff85893000 -     0x7fff859b4fff  com.apple.LaunchServices (644.10 - 644.10) <0B1C68BC-0AEB-38E2-ABC8-E92728FEC475> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
                            0x7fff85ce5000 -     0x7fff85ce7ff7  libsystem_coreservices.dylib (9) <41B7C578-5A53-31C8-A96F-C73E030B0938> /usr/lib/system/libsystem_coreservices.dylib
                            0x7fff85ec0000 -     0x7fff861dbfcf  com.apple.vImage (8.0 - 8.0) <1183FE6A-FDB6-3B3B-928D-50C7909F2308> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
                            0x7fff86642000 -     0x7fff8666afff  libxpc.dylib (559.1.22) <9437C02E-A07B-38C8-91CB-299FAA63083D> /usr/lib/system/libxpc.dylib
                            0x7fff86770000 -     0x7fff86777ff7  libcompiler_rt.dylib (35) <BF8FC133-EE10-3DA6-9B90-92039E28678F> /usr/lib/system/libcompiler_rt.dylib
                            0x7fff87227000 -     0x7fff87234ff7  libxar.1.dylib (254) <CE10EFED-3066-3749-838A-6A15AC0DBCB6> /usr/lib/libxar.1.dylib
                            0x7fff8771a000 -     0x7fff87735ff7  libCRFSuite.dylib (34) <D64842BE-7BD4-3D0C-9842-1D202F7C2A51> /usr/lib/libCRFSuite.dylib
                            0x7fff877dd000 -     0x7fff8796bfff  libBLAS.dylib (1128) <497912C1-A98E-3281-BED7-E9C751552F61> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
                            0x7fff87a9a000 -     0x7fff87aabff7  libsystem_coretls.dylib (35.1.2) <EBBF7EF6-80D8-3F8F-825C-B412BD6D22C0> /usr/lib/system/libsystem_coretls.dylib
                            0x7fff87aac000 -     0x7fff87b13ff7  com.apple.framework.CoreWiFi (3.0 - 300.4) <19269C1D-EB29-384A-83F3-7DDDEB7D9DAD> /System/Library/PrivateFrameworks/CoreWiFi.framework/Versions/A/CoreWiFi
                            0x7fff88656000 -     0x7fff88748ff7  libiconv.2.dylib (42) <2A06D02F-8B76-3864-8D96-64EF5B40BC6C> /usr/lib/libiconv.2.dylib
                            0x7fff88a50000 -     0x7fff88a57fff  com.apple.NetFS (6.0 - 4.0) <1581D25F-CC07-39B0-90E8-5D4F3CF84EBA> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
                            0x7fff88c90000 -     0x7fff88c94fff  libcache.dylib (69) <45E9A2E7-99C4-36B2-BEE3-0C4E11614AD1> /usr/lib/system/libcache.dylib
                            0x7fff88d37000 -     0x7fff88d96ff3  com.apple.AE (681 - 681) <7F544183-A515-31A8-B45F-89A167F56216> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
                            0x7fff892ab000 -     0x7fff892b3ffb  libcopyfile.dylib (118.1.2) <0C68D3A6-ACDD-3EF3-991A-CC82C32AB836> /usr/lib/system/libcopyfile.dylib
                            0x7fff89bfa000 -     0x7fff89c70fe7  libcorecrypto.dylib (233.1.2) <E1789801-3985-3949-B736-6B3378873301> /usr/lib/system/libcorecrypto.dylib
                            0x7fff89cbb000 -     0x7fff89cd7ff7  libsystem_malloc.dylib (53.1.1) <19BCC257-5717-3502-A71F-95D65AFA861B> /usr/lib/system/libsystem_malloc.dylib
                            0x7fff89d33000 -     0x7fff89de2fe7  libvMisc.dylib (512) <AFBA45DE-7F55-3E4E-B8DF-5E8E21C407AD> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
                            0x7fff89de3000 -     0x7fff89de4fff  libSystem.B.dylib (1213) <DA954461-EC6A-3DF0-8551-6FC810627627> /usr/lib/libSystem.B.dylib
                            0x7fff89df0000 -     0x7fff89df1ffb  libremovefile.dylib (35) <3485B5F4-6CE8-3C62-8DFD-8736ED6E8531> /usr/lib/system/libremovefile.dylib
                            0x7fff8a328000 -     0x7fff8a330ffb  com.apple.CoreServices.FSEvents (1210 - 1210) <782A9C69-7A45-31A7-8960-D08A36CBD0A7> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents
                            0x7fff8a331000 -     0x7fff8a423fff  libxml2.2.dylib (26) <B834E7C8-EC3E-3382-BC5A-DA38DC4D720C> /usr/lib/libxml2.2.dylib
                            0x7fff8a4ba000 -     0x7fff8a4bafff  com.apple.Accelerate (1.10 - Accelerate 1.10) <C7278843-2462-32F6-B0E3-D33C681399A2> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
                            0x7fff8a4bb000 -     0x7fff8a4ebfff  libsystem_m.dylib (3086.1) <1E12AB45-6D96-36D0-A226-F24D9FB0D9D6> /usr/lib/system/libsystem_m.dylib
                            0x7fff8a799000 -     0x7fff8a7eaff7  com.apple.audio.CoreAudio (4.3.0 - 4.3.0) <AF72B06E-C6C1-3FAE-8B47-AF461CAE0E22> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
                            0x7fff8a7eb000 -     0x7fff8a816ff3  libarchive.2.dylib (30) <8CBB4416-EBE9-3574-8ADC-44655D245F39> /usr/lib/libarchive.2.dylib
                            0x7fff8a817000 -     0x7fff8a819fff  com.apple.loginsupport (1.0 - 1) <35A2A071-606C-39A5-8C11-E4CAF98D934C> /System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport
                            0x7fff8aab1000 -     0x7fff8addfff7  com.apple.Foundation (6.9 - 1151.16) <18EDD673-A010-3E99-956E-DA594CE1FA80> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
                            0x7fff8ae40000 -     0x7fff8aebdfff  com.apple.CoreServices.OSServices (640.3 - 640.3) <28445162-08E9-3E24-84E4-617CE5FE1367> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
                            0x7fff8af9c000 -     0x7fff8af9efff  libsystem_configuration.dylib (699.1.5) <9FBA1CE4-97D0-347E-A443-93ED94512E92> /usr/lib/system/libsystem_configuration.dylib
                            0x7fff8afb8000 -     0x7fff8afe2ff7  libdispatch.dylib (442.1.4) <502CF32B-669B-3709-8862-08188225E4F0> /usr/lib/system/libdispatch.dylib
                            0x7fff8afe3000 -     0x7fff8b00cffb  libxslt.1.dylib (13) <AED1143F-B848-3E73-81ED-71356F25F084> /usr/lib/libxslt.1.dylib
                            0x7fff8b660000 -     0x7fff8b8dafff  com.apple.CoreData (110 - 526) <AEEDAF00-D38F-3A15-B3C9-73732940CC55> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
                            0x7fff8b9be000 -     0x7fff8b9beff7  liblaunch.dylib (559.1.22) <8A988924-8BE7-35FE-BF7D-322E90EFE49E> /usr/lib/system/liblaunch.dylib
                            0x7fff8b9bf000 -     0x7fff8b9bffff  com.apple.Accelerate.vecLib (3.10 - vecLib 3.10) <01E92F9F-EF29-3745-8631-AEA692F7F29C> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
                            0x7fff8b9c0000 -     0x7fff8b9c1fff  libsystem_secinit.dylib (18) <581DAD0F-6B63-3A48-B63B-917AF799ABAA> /usr/lib/system/libsystem_secinit.dylib
                            0x7fff8b9f5000 -     0x7fff8ba49fff  libc++.1.dylib (120) <1B9530FD-989B-3174-BB1C-BDC159501710> /usr/lib/libc++.1.dylib
                            0x7fff8c1d1000 -     0x7fff8c1d6ff7  libmacho.dylib (862) <126CA2ED-DE91-308F-8881-B9DAEC3C63B6> /usr/lib/system/libmacho.dylib
                            0x7fff8c1d7000 -     0x7fff8c1d8fff  liblangid.dylib (117) <B54A4AA0-2E53-3671-90F5-AFF711C0EB9E> /usr/lib/liblangid.dylib
                            0x7fff8c1f6000 -     0x7fff8c207ff7  libz.1.dylib (55) <88C7C7DE-04B8-316F-8B74-ACD9F3DE1AA1> /usr/lib/libz.1.dylib
                            0x7fff8c208000 -     0x7fff8c20aff7  libquarantine.dylib (76) <DC041627-2D92-361C-BABF-A869A5C72293> /usr/lib/system/libquarantine.dylib
                            0x7fff8c5d6000 -     0x7fff8c6e8ff7  libvDSP.dylib (512) <DD5517F5-F7F7-3AA1-B6FA-CD98DBC3C651> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
                            0x7fff8c6e9000 -     0x7fff8ca1cfff  libmecabra.dylib (666) <2CE5540A-D412-3D53-9E11-86C24D61713B> /usr/lib/libmecabra.dylib
                            0x7fff8de78000 -     0x7fff8de7bff7  libdyld.dylib (353.2.1) <19FAF435-C165-3374-9DEF-D7BBA7D61DB6> /usr/lib/system/libdyld.dylib
                            0x7fff8df34000 -     0x7fff8df44ff7  libbsm.0.dylib (34) <A3A2E56C-2B65-37C7-B43A-A1F926E1A0BB> /usr/lib/libbsm.0.dylib
                            0x7fff8eb6b000 -     0x7fff8ec0dfff  com.apple.Bluetooth (4.3.0 - 4.3.0f10) <70922125-2A01-37AE-9CB8-D8A9578092E4> /System/Library/Frameworks/IOBluetooth.framework/Versions/A/IOBluetooth
                            0x7fff8ec50000 -     0x7fff8ec55ff7  libunwind.dylib (35.3) <BE7E51A0-B6EA-3A54-9CCA-9D88F683A6D6> /usr/lib/system/libunwind.dylib
                            0x7fff8ec86000 -     0x7fff8ec86ff7  libunc.dylib (29) <5676F7EA-C1DF-329F-B006-D2C3022B7D70> /usr/lib/system/libunc.dylib
                            0x7fff8f1c6000 -     0x7fff8f1cafff  libpam.2.dylib (20) <E805398D-9A92-31F8-8005-8DC188BD8B6E> /usr/lib/libpam.2.dylib
                            0x7fff8f2b6000 -     0x7fff8f2bfff7  libsystem_notify.dylib (133.1.1) <61147800-F320-3DAA-850C-BADF33855F29> /usr/lib/system/libsystem_notify.dylib
                            0x7fff8f31f000 -     0x7fff8f606ffb  com.apple.CoreServices.CarbonCore (1108.1 - 1108.1) <55A16172-ACC0-38B7-8409-3CB92AF33973> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
                            0x7fff900f2000 -     0x7fff900f2ff7  libkeymgr.dylib (28) <77845842-DE70-3CC5-BD01-C3D14227CED5> /usr/lib/system/libkeymgr.dylib
                            0x7fff9024c000 -     0x7fff90257fff  libcommonCrypto.dylib (60061) <D381EBC6-69D8-31D3-8084-5A80A32CB748> /usr/lib/system/libcommonCrypto.dylib
                            0x7fff903b0000 -     0x7fff90595ff3  libicucore.A.dylib (531.30) <EF0E7544-E317-3550-A962-6AE65E78AF17> /usr/lib/libicucore.A.dylib
                            0x7fff906cb000 -     0x7fff906f6fff  com.apple.DictionaryServices (1.2 - 229) <6789EC43-CADA-394D-8FE8-FC3A2DD136B9> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
                            0x7fff907d2000 -     0x7fff907d4ff7  libsystem_sandbox.dylib (358.1.1) <DB9962EF-8898-31CC-9B87-E01F8CE74C9D> /usr/lib/system/libsystem_sandbox.dylib
                            0x7fff9085f000 -     0x7fff90872ff7  com.apple.CoreBluetooth (1.0 - 1) <FA9B43B3-E183-3040-AE25-66EF9870CF35> /System/Library/Frameworks/CoreBluetooth.framework/Versions/A/CoreBluetooth
                            0x7fff90873000 -     0x7fff90a58267  libobjc.A.dylib (646) <3B60CD90-74A2-3A5D-9686-B0772159792A> /usr/lib/libobjc.A.dylib
                            0x7fff90d36000 -     0x7fff90d36fff  com.apple.CoreServices (62 - 62) <9E4577CA-3FC3-300D-AB00-87ADBDDA2E37> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
                            0x7fff90dd2000 -     0x7fff90ddeff7  com.apple.OpenDirectory (10.10 - 187) <1D0066FC-1DEB-381B-B15C-4C009E0DF850> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
                            0x7fff90e17000 -     0x7fff9101aff3  com.apple.CFNetwork (720.0.9 - 720.0.9) <78EE1B88-394F-3BB8-93A6-E068990559EC> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
                            0x7fff9107d000 -     0x7fff91082fff  com.apple.DiskArbitration (2.6 - 2.6) <0DFF4D9B-2AC3-3B82-B5C5-30F4EFBD2DB9> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
                            0x7fff910eb000 -     0x7fff91189fff  com.apple.Metadata (10.7.0 - 916) <DA8A1D18-19FE-37B3-BE12-85C5B0A00736> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
                            0x7fff9127b000 -     0x7fff912ecff7  com.apple.framework.IOKit (2.0.2 - 1050.1.21) <ED3B0B22-AACC-303B-BFC8-20ECD1AF6BA2> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
                            0x7fff91465000 -     0x7fff914ccff7  com.apple.datadetectorscore (6.0 - 396.1) <5D348063-1528-3E2F-B587-9E82970506F9> /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore
                        
                        External Modification Summary:
                          Calls made by other processes targeting this process:
                            task_for_pid: 0
                            thread_create: 0
                            thread_set_state: 0
                          Calls made by this process:
                            task_for_pid: 0
                            thread_create: 0
                            thread_set_state: 0
                          Calls made by all processes on this machine:
                            task_for_pid: 390141
                            thread_create: 0
                            thread_set_state: 0
                        
                        VM Region Summary:
                        ReadOnly portion of Libraries: Total=146.5M resident=156.9M(107%) swapped_out_or_unallocated=16777216.0T(12008958197760%)
                        Writable regions: Total=22.0M written=2744K(12%) resident=2912K(13%) swapped_out=0K(0%) unallocated=19.2M(87%)
                         
                        REGION TYPE                      VIRTUAL
                        ===========                      =======
                        Kernel Alloc Once                     4K
                        MALLOC                             11.2M
                        MALLOC (admin)                       16K
                        STACK GUARD                        56.0M
                        Stack                              8192K
                        VM_ALLOCATE                           8K
                        __DATA                             7436K
                        __LINKEDIT                         70.0M
                        __TEXT                             76.4M
                        __UNICODE                           544K
                        __le__                              112K
                        mapped file                          64K
                        shared memory                         4K
                        ===========                      =======
                        TOTAL                             229.7M
                        
                        Model: MacBookAir6,2, BootROM MBA61.0099.B16, 2 processors, Intel Core i7, 1.7 GHz, 8 GB, SMC 2.13f15
                        Graphics: Intel HD Graphics 5000, Intel HD Graphics 5000, Built-In
                        Memory Module: BANK 0/DIMM0, 4 GB, DDR3, 1600 MHz, 0x80AD, 0x483943434E4E4E384A544D4C41522D4E544D
                        Memory Module: BANK 1/DIMM0, 4 GB, DDR3, 1600 MHz, 0x80AD, 0x483943434E4E4E384A544D4C41522D4E544D
                        AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x117), Broadcom BCM43xx 1.0 (7.15.124.12.8)
                        Bluetooth: Version 4.3.0f10 14890, 3 services, 27 devices, 1 incoming serial ports
                        Network Service: Thunderbolt Ethernet Slot 1, Ethernet, en2
                        PCI Card: ethernet, Ethernet Controller, Thunderbolt@193,0,0
                        PCI Card: pci1b73,1100, USB eXtensible Host Controller, Thunderbolt@194,0,0
                        Serial ATA Device: APPLE SSD SD0128F, 121.33 GB
                        USB Device: USB3.0 Hub
                        USB Device: External USB 3.0
                        USB Device: USB audio CODEC
                        USB Device: Yubico Yubikey II
                        USB Device: USB2.0 Hub
                        USB Device: Backup+  Desk
                        USB Device: Keyboard Hub
                        USB Device: Apple Keyboard
                        USB Device: Internal Memory Card Reader
                        USB Device: BRCM20702 Hub
                        USB Device: Bluetooth USB Host Controller
                        Thunderbolt Bus: MacBook Air, Apple Inc., 23.6
                        Thunderbolt Device: Thunderbolt Station, CalDigit, Inc., 1, 30.1
                        

                        • +1
                          Сделайте git pull и попробуйте еще.
                          • 0
                            skype-poll-fix.c:61:15: error: assigning to 'struct timespec' from incompatible type 'const struct timespec *'
                                            new_timeout = timeout;
                                                        ^ ~~~~~~~
                            1 error generated.
                            make: *** [skype-poll-fix.o] Error 1
                            
                        • +1
                          Во время простоя правка таймаутов может и позволит снизить нагрузку на цпу.
                          А во время видео-вызовов, не повлияет ли на стабильность связи при передаче видеопотока? Не будет дёрганья и задержек? Как-никак работа приближена к реалтайму должна быть…
                          • 0
                            Видео не проверял, но с голосом никаких проблем.
                          • +8
                            Разрешите включить в состав skypetab?
                            • +6
                              Конечно! Чего спрашиваете-то.
                            • 0
                              Увеличивает таймаут у вызовов poll (Linux) и kevent (Mac OS), снижая потребление процессора в 4-5 раз.

                              А что эти вызовы делают?
                            • 0
                              на арче x86_64

                              [melihov@sup-pm7 skype-poll-fix]$ LD_PRELOAD=./skype-poll-fix.so skype
                              ERROR: ld.so: object './skype-poll-fix.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
                              
                              [melihov@sup-pm7 skype-poll-fix]$ uname -a
                              Linux sup-pm7.r-service.net 3.17.1-1-ARCH #1 SMP PREEMPT Wed Oct 15 15:04:35 CEST 2014 x86_64 GNU/Linux
                              
                              • +1
                                Не обращайте внимания, это он в bash не может подгрузиться.
                              • 0
                                Извините за глупый вопрос, но каждый раз нужно запускать через
                                LD_PRELOAD=./skype-poll-fix.so skype?
                                • 0
                                  Да.
                                  Я добавил это в /usr/bin/skype (шелл-скрипт).
                                  • 0
                                    Интересно, что делать в маке? Хоть приложение-лаунчер пакуй, чтоб не лазить внутрь скайповского приложения.

                                    упд. дочитал до конца — что-то нет у меня уверенности, что Info.plist переживает обновления скайпа… ;-(
                                • 0
                                  Для арча сделал так:
                                  Кладем ./skype-poll-fix.so в /usr/lib/
                                  Правим /usr/bin/skype
                                  $ cat /usr/bin/skype
                                  #!/bin/bash
                                  
                                  LIBDIR="/usr/lib32"
                                  
                                  if [[ -e "$LIBDIR/libv4l/v4l2convert.so" ]]; then
                                          export LD_PRELOAD="${LD_PRELOAD:+$LD_PRELOAD:}$LIBDIR/libv4l/v4l2convert.so"
                                  fi
                                  
                                  if [[ -e "/usr/share/skype/lib/libQtWebKit.so.4" ]]; then
                                          export LD_PRELOAD="${LD_PRELOAD:+$LD_PRELOAD:}/usr/share/skype/lib/libQtWebKit.so.4"
                                  fi
                                  
                                  export LD_PRELOAD="${LD_PRELOAD:+$LD_PRELOAD:}/usr/lib/skype-poll-fix.so"
                                  
                                  exec "$LIBDIR/skype/skype" "$@"
                                  
                                  • +3
                                    Не нужно что-то укладывать в /usr/lib, если вы не пакетный менеджер, засовывайте в /usr/local/lib подобные вещи, не гадьте в неположенных местах.
                                    • 0
                                      в lib32, по моему, лучше положить, а не в lib(64)
                                  • 0
                                    Mint 17 (64bit) (На Ubuntu 14.04 LTS):
                                    make -f Makefile.linux
                                    cc -shared -m32 -O2 -ldl -c -o skype-poll-fix.o skype-poll-fix.c
                                    In file included from /usr/include/stdio.h:27:0,
                                    from skype-poll-fix.c:2:
                                    /usr/include/features.h:374:25: fatal error: sys/cdefs.h: Нет такого файла или каталога
                                    # include <sys/cdefs.h>
                                    ^
                                    compilation terminated.
                                    make: *** [skype-poll-fix.o] Ошибка 1
                                    • 0
                                      У вас __APPLE__, похоже.
                                      • 0
                                        cat /etc/*-release:

                                        DISTRIB_ID=LinuxMint
                                        DISTRIB_RELEASE=17
                                        DISTRIB_CODENAME=qiana
                                        DISTRIB_DESCRIPTION=«Linux Mint 17 Qiana»
                                        NAME=«Ubuntu»
                                        VERSION=«14.04.1 LTS, Trusty Tahr»
                                        ID=ubuntu
                                        ID_LIKE=debian
                                        PRETTY_NAME=«Ubuntu 14.04.1 LTS»
                                        VERSION_ID=«14.04»
                                        HOME_URL=«www.ubuntu.com/»
                                        SUPPORT_URL=«help.ubuntu.com/»
                                        BUG_REPORT_URL=«bugs.launchpad.net/ubuntu/»
                                        cat: /etc/upstream-release: Это каталог


                                        cat /proc/version:
                                        Linux version 3.13.0-24-generic (buildd@batsu) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014


                                        Пакет build-essentials установлен.
                                    • +1
                                      У меня тоже на Linux Mint (правда 12.04 LTS) не собиралось:

                                      $ make -f Makefile.linux 
                                      cc -shared -m32 -O2 -ldl   -c -o skype-poll-fix.o skype-poll-fix.c
                                      In file included from /usr/include/stdio.h:28:0,
                                                       from skype-poll-fix.c:2:
                                      /usr/include/features.h:324:26: fatal error: bits/predefs.h: No such file or directory
                                      compilation terminated.
                                      make: *** [skype-poll-fix.o] Error 1
                                      


                                      Оказалось проблема решается просто — нужно установить пакет gcc-multilib:

                                      sudo aptitude install gcc-multilib
                                      
                                    • +1
                                      Поставьте
                                      apt-get install gcc-multilib
                                      • 0
                                        извините, не увидел комментарий выше
                                    • 0
                                      Может не совсем по теме, но актуально: как закрыть Skype (полностью выйти) под Windows? Вопрос про самую последнюю версию Skype. Единственный действенный метод, который я нашёл — через Task Manager. Спасибо.
                                      • +1
                                        ПКМ на значке на панеле задач (не помню как она называется в винде).
                                        Там есть пункт «Quit»
                                      • 0
                                        Ситема Arch, i7-4700HQ, постоянная зарузка проца скайпов около 2% и это когда он просто висит в фоне.
                                        • 0
                                          Под linux нехватает проверки на отрицательный timeout. В таком случае для poll это означает бесконечность. Сейчас 'ждать вечно' меняется на 'ждать 300мс'.
                                          • +3
                                            А сделайте пожалуйста пакет для homebrew.
                                            • 0
                                              Сделать несложно, только имеет ли смысл.
                                              Вам этот метод помог?
                                              У меня после ощения с автором запустилось, но эффекта никакого.
                                            • 0
                                              Возникает ошибка
                                              $ LD_PRELOAD=./skype-poll-fix.so skype
                                              ERROR: ld.so: object './skype-poll-fix.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored
                                              

                                            • 0
                                              Падает где-то после получаса работы:
                                              Gentoo x86_64

                                              LD_PRELOAD=./skype-poll-fix.so skype
                                              Corrupt JPEG data: 4 extraneous bytes before marker 0xc4
                                              ERROR: ld.so: object './skype-poll-fix.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
                                              ERROR: ld.so: object './skype-poll-fix.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
                                              ERROR: ld.so: object './skype-poll-fix.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
                                              
                                              (process:6058): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
                                              Аварийный останов
                                              
                                              
                                              • 0
                                                Ubuntu, 14.04

                                                $ make
                                                Building 32-bit linux shared-library skype-poll-fix.so…
                                                cc -shared -m32 -O2 -ldl -o skype-poll-fix.so skype-poll-fix.c
                                                skype-poll-fix.c: In function ‘poll’:
                                                skype-poll-fix.c:56:27: error: ‘RTLD_NEXT’ undeclared (first use in this function)
                                                pollmethod_orig = dlsym(RTLD_NEXT, STRINGIZE(POLL_FUNC_NAME));
                                                ^
                                                skype-poll-fix.c:56:27: note: each undeclared identifier is reported only once for each function it appears in
                                                make: *** [all] Error 1

                                                Пакет gcc-multilib стоит.
                                                Как это исправить?
                                                • 0
                                                  На OS X стоит «make -f Makefile.macos» заменить на «make -f Makefile», иначе ошибка (:
                                                  • 0
                                                    И да, можно ли каким-либо образом на OS X сделать так, чтобы при нажатии на иконку Skype запускался он с нужными параметрами, а не каждый раз через терминал?
                                                    • 0
                                                      Там как-то можно через XML. Но, скорее всего, у вас тоже не заработает, что-то под Mac OS поломано, пока я не понял, что именно.
                                                      • 0
                                                        Вроде так в /Applications/Skype.app/Contents/Info.plist:

                                                          <key>LSEnvironment</key>
                                                          <dict>
                                                              <key>DYLD_INSERT_LIBRARIES</key>
                                                              <string>/path/to/dylib/skype-poll-fix.dylib</string>
                                                          </dict>
                                                        
                                                        • 0
                                                          с первого раза скайп не запустился.
                                                          со второго раза получилось. хз как проверить, есть ли эффект
                                                          • 0
                                                            У меня с первого раза запустился, но вылетел через какое-то время.
                                                            • 0
                                                              тут yosemite + правильно обновлённые сдк/компиляторы и т.д. В этом же Info.plist написано явно, что эту версию скайпа собирали под 10.10 таким же компилятором (точнее, СДК, но суть та же)
                                                      • 0
                                                        Круто. Загрузка упала с 2,3 до 0,3 %.

                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.