> на делфях
:)
lorienА на чем основана эта рекомендация? Есть тесты, на каком количестве соединений насколько меньше они грузят? Или это такое внутреннее чувство? :)
> Краеугольный камень срача “треды vs кооперативная многозадачность”.
Вы заблуждаетесь, я не учавствую в сраче. Просто рекомендую использовать асинхронность т.к. она меньше систему грузит. Если вам нравится использовать треды, ради бога.
asilyatorИ чо? На питоне он насколько больше?
> на делфях
:)
asilyatorНа самом деле не так страшен груз, как переключение контекста: http://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0
А на чем основана эта рекомендация? Есть тесты, на каком количестве соединений насколько меньше они грузят? Или это такое внутреннее чувство? :)
asilyator
Что многотредовое приложение на питоне не будет работать быстрее на многоядернике, чем на одноядернике с такой же частотой?
asilyator
Ты две строчки способен прочесть?
Я написал о том, что даже на 500 тредах оверхед (правда, в приложении на делфях) абсолютно минимальный
asilyator
Если Вы парсите документ и парсинг занимает секунду, то эту секунду все потоки будут отдыхать. При многопоточности они бы занимались своим делом.
lorienТут проблема должна быть в чем-то другом. Код можно?
Ну скажем так, система раком вставала на сотнях тредах.
lorienЯ про что-то вроде Twisted, где можно, например, делать паузу.
> во-первых, для него нужен специальный фреймверк
Поэтому и был написан Grab:Spider - он действительно позволяет писать парсеры легко и непринуждённо. Ну или scrapy - там такая же архитектура.
lorienУ меня построение дерева с помощью html5lib где-то столько занимает на вполне обычной странице.
Чтобы парсинг занимал секунду, надо парсить *очень* большой документ.
slav0nicА в питоне оно принципилально по другому? Питонкапец++ :) Хотя надо проверить. Код можно?
ах, так мы про Delphi!
slav0nicА что ты хотел этим сказать? Не понял.
asilyator
Что многотредовое приложение на питоне не будет работать быстрее на многоядернике, чем на одноядернике с такой же частотой?
в рамках 1 процесса - нет
slav0nic
asilyator
Не говоря о том, что треды лучше параллелятся (для питона неактулально).
смелое утверждение %) очередное горе от ума и не понимание GIL в полной мере.
slav0nicПодумай еще раз. Что будут делать другие потоки при кооперативной многозадачности и что при настоящей (забыл как ее зовут), если один из них займет процессор на время, намного большее кванта времени, выделенной одному треду.
Треды в основном полезны при больших IO, где велико ожидание ответа, аля запрос по сети и так далее, но твои размышления не совсем верны)
asilyator
А в питоне оно принципилально по другому?
asilyatorто что для 400% загрузки 4 CPU надо запустить 4 процесса для начала, а 100 тредов тебе все ресурсы CPU не выжрут, это по-моему даже в доке описано, но другими словами)
А что ты хотел этим сказать? Не понял.
lorienВот-вот. Т.е. чтобы отказаться от тредов, надо доказать, что кусочки не могут быть долгими или, хотя бы, что треды не подходят. Возьметесь?
Треды могут быть полезны в задачах, которые трудно разбить на относительно маленькие синхронные кусочки. Тогда пишем треды и не паримся, что у нас всё зависнте из-за долгого синхронного кусочка.
slav0nicВ чем горе от ума?
asilyator
А в питоне оно принципилально по другому?
Я же написал, прочитай что такое GIL и как он связан с потоками и native потоков могут работать одновременно и как происходит переключение между потоками (то что regall
кидал например)
Ну и питон как бы интерпретатор… конечно по другому