программистское
Apr. 26th, 2005 01:26 pmКлиент обменной сети ED2K/Overnet, бегущий на моём компьютере, жрёт 25% процессорного времени. Повбывав бы.
Причём, ну хоть он в лепёшку расшибись - нечего ему делать на эти 25%. Ему и на 5% делать нечего. Он куски файлов посылает туда-сюда, и больше ничего не делает. Ну ещё их hash подсчитывает иногда, держит очереди и списки других клиентов, и какие-то алгоритмы поиска запускает, когда ищет, у кого бы скачать. Да, он держит одновременно открытыми несколько сотен файлов (отдельные фрагменты большого файла, который он качает) и несколько десятков TCP-соединений. Ну и что?
Как ни прикидывай, у него узким местом обязан быть сетевой I/O, а не процессор. Если бы я мог хотя бы в исходники посмотреть, что же там он такое через задницу делает на 25%. Но он не open-source.
Раздражает.
Причём, ну хоть он в лепёшку расшибись - нечего ему делать на эти 25%. Ему и на 5% делать нечего. Он куски файлов посылает туда-сюда, и больше ничего не делает. Ну ещё их hash подсчитывает иногда, держит очереди и списки других клиентов, и какие-то алгоритмы поиска запускает, когда ищет, у кого бы скачать. Да, он держит одновременно открытыми несколько сотен файлов (отдельные фрагменты большого файла, который он качает) и несколько десятков TCP-соединений. Ну и что?
Как ни прикидывай, у него узким местом обязан быть сетевой I/O, а не процессор. Если бы я мог хотя бы в исходники посмотреть, что же там он такое через задницу делает на 25%. Но он не open-source.
Раздражает.
no subject
Date: 2005-04-26 09:54 pm (UTC)проблема в calm'мовском garbage collector'e на мой взгляд:
CPU активизируеться через конст. промежуток времени и загрузка как правило прямопропорциональна кол-ву коннетов и файлов.
также memotry leaks проевляються там жестко, когда у него какие-то непонятки с кусками (кривая инфа/дата).
no subject
Date: 2005-04-27 04:51 am (UTC)При этом запусками самого gc можно управлять принудительно через переменные окружения. И из самой программы.