Форум сайта python.su
А про GIL никто и не упомянул…
Офлайн
ZZZА что именно следовало упомянуть?
А про GIL никто и не упомянул…
Офлайн
А то, что нет смысла в таком количестве потоков.
Вот утверждение:
pasaranaxДля питона оно бессмысленно. Ибо GIL режет реальную многопоточность на корню. Тут надо процессы использовать.
рекомендуют устанавливать количество потоков равным количеству ядер + 1
SkylerСобственно, это похоже на ожидание отправки/получения пакетов через сеть.
После запуска очереди потоков, первые задачи выполняются быстро, но вот последние несколько идут оооочень медленно.
Отредактировано (Окт. 29, 2009 13:52:09)
Офлайн
ZZZхм… к нулю?
Если представить, что скорость обработки запроса гууглом стремится к бесконечности,
Офлайн
Ну по сравнению с latency сети.
Но могу и ошибаться.
Офлайн
ZZZ
Хм, но ведь кол-во потоков под 100 дает реально быструю производительность, задания выполняются быстро, исключая последние несколько. А в 3 потока вообще о производительности говорить нельзя.
Собственно, это похоже на ожидание отправки/получения пакетов через сеть.Вот про это можно поподробней? Т.е. как бы перегружая канал выполнением большого кол-ва задач за короткое время, канал начинает “тупить”? А если применять задержки, не загружая его сильно?
Офлайн
Для начала запусти task manager и посмотри график загрузки процессора, сети. Скорее всего при работе через прокси под 100% они загружены не будут даже при 100 потоках. Скорее всего где-то ошибка или еще чего. В питоне я пока не особо силен - точно не скажу. Но на делфи моя программа работает в 250-300 потоков без проблем и, разумеется, выполняет свои задачи в минимум в раз 50 быстрее, чем если бы работала в 2-3 потока.
Офлайн
DHTВот именно это мне и надо :)
Но на делфи моя программа работает в 250-300 потоков без проблем
Отредактировано (Окт. 30, 2009 00:27:48)
Офлайн
Skylerнаверное в этом и проблема. а sleep не помог?
Процессор грузится всегда на ~50%
Отредактировано (Окт. 30, 2009 09:10:22)
Офлайн
DHTАга, есть такое. При 2 потоках даже 50% :(
проц будет грузится под завязку даже при меньшем кол-ве потоков.
proxy = proxypool.get()
time.sleep(100)
if proxy != None:
Отредактировано (Окт. 30, 2009 11:02:02)
Офлайн