есть программа использующая блокирующие сокеты в потоках.
при работе с одним потоком нагрузка на ЦП около 50%, а при нескольких запущенных потоках — почти 100%!
комп виснет (((
вопрос что делать и в чем может скрываться зло? спасибо!
Здравствуйте, Poseidon, Вы писали:
P>есть программа использующая блокирующие сокеты в потоках. P>при работе с одним потоком нагрузка на ЦП около 50%, а при нескольких запущенных потоках — почти 100%! P>комп виснет (((
P>вопрос что делать и в чем может скрываться зло? спасибо!
Проверяйте что возвращает recv. Да и профилирование вам в помощь
Здравствуйте, andrey.desman, Вы писали:
AD>Здравствуйте, Poseidon, Вы писали:
P>>есть программа использующая блокирующие сокеты в потоках.
AD>Исходники есть у этой программы?
есть. но если вкратце, используется libcurl с поддержкой SSL и блокирующими сокетами
посмотрел еще раз, в одном потоке идет закачка вроде все ок, а когда закачка в 5 потоков то
загрузка процессора очень быстро растет до 100% почти. вероятно что то напутано с синхронизацией(((
но что?
Здравствуйте, Poseidon, Вы писали:
P>посмотрел еще раз, в одном потоке идет закачка вроде все ок, а когда закачка в 5 потоков то P>загрузка процессора очень быстро растет до 100% почти. вероятно что то напутано с синхронизацией((( P>но что?
А какой общий поток данных-то (сколько мегабайтов в секунду качается)?
А то был упомянут SSL, а расшифровка большого объема данных занимает довольно много процессорного времени. Может, все вполне законно?
Здравствуйте, Poseidon, Вы писали:
P>есть программа использующая блокирующие сокеты в потоках. P>при работе с одним потоком нагрузка на ЦП около 50%, а при нескольких запущенных потоках — почти 100%! P>комп виснет (((
Вангую что-то вроде
Здравствуйте, Poseidon, Вы писали:
P>есть программа использующая блокирующие сокеты в потоках. P>при работе с одним потоком нагрузка на ЦП около 50%, а при нескольких запущенных потоках — почти 100%! P>комп виснет (((
P>вопрос что делать и в чем может скрываться зло? спасибо!
Маловероятно, но всё же: встречался с глюкавыми драйверами сетевух, когда расшарив кому-то более-менее толстый файл в локалке, можно было идти на обед: пока файл не скачают, машина "замерзает".