Erlang однозначно более высокого уровня по сравнению с Node.<div><br></div><div>Разные абсолютно фишки.</div><div><br></div><div>А вот то, что Erlang-men сравнивают свой мир с мир Node, говорит не в их пользу. Node-народу на них пофиг.<br>
<br><div class="gmail_quote">30 октября 2012 г., 15:43 пользователь ksvs <span dir="ltr"><<a href="mailto:ksvs1996@ymail.com" target="_blank">ksvs1996@ymail.com</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div style="font-size:12pt;font-family:times new roman,new york,times,serif"><div><div><div style="font-size:12pt;font-family:times new roman,new york,times,serif"><div>Привет.<br>Решил все таки посмотреть на AnyEvent::HTTP.<br>
Сделал скачивание страниц сайта <a href="http://perl.com" target="_blank">perl.com</a> по заранее приготовленному списку url (1123 ссылки).<br><br><br>Однопоточный LWP справляется с этим за 7:53 минут<br>HTTP::Async (33 одновременных соединения) - 1:55<br>
AnyEvent::HTTP (33 одновременных соединения) - 0:38<br>Coro::LWP (33 одновременных соединения) - 0:21<br><br>Наверно AnyEvent::HTTP медленней, чем Coro::LWP
 из-за того, что не кешируется DNS.<br>А последние версии AnyEvent и AnyEvent::CacheDNS не совместимы
 друг с другом.<br><br>А вот вариант с prefork в 10 дочерних процессов справился за 0:48.<br>Каждому дочернему процессу передается по одному url, он возвращает результат и ему передается следующий url)<br><br>На компьютере 4 ядра.<br>
<br>А в 33 потока prefork справился быстрей всех - 0:17<br><br><br>Чтобы тесты не были слишком искусственными, я добавил анализ страниц при помощи HTML::Parser (поиск внешний и внутренних ссылок).<br><br>LWP -                 9:22<br>
AnyEvent::HTTP (33) - 1:12<br>Coro::LWP (33) -      1:17<br>prefork (10) -       
 0:54<br>prefork (33) -        0:23<br><br>затем все таки уговорил себя и сделал гибридный вариант: <br>prefork (4 процесса) и в каждом 8 Coro - 0:24<br>prefork (4 процесса) и в каждом 33 Coro - 0:24<br>prefork (4 процесса) и в каждом 33 AnyEvent::HTTP - 0:22<br>
<br>Кстати, когда снял нагрузку (анализ страниц), то заметил, что вариант prefork-Сoro иногда зависает, а вариант prefork-AnyEvent::HTTP - нет.<br><br><br>Что я могу сказать по всему этому. Было интересно. Но наверное, использование Event оправдано лишь для узкого круга задач, где куча медленных соединений и задачи эти не нагружают CPU. Но для
 этого вероятно проще использовать тот-же Erlang и Haskell, которые сами все ядра использую.<br><br>Хотя ведь при общении с дочерними процессами используется select или прочий event.<br><br>А для каких задач вы используете AnyEvent?<br>
<br>P.S.<br><br>Кстати, об Erlang.<br><br>Не смотря на фразу "Слава Богу, я не подписан на из списки рассылки", я решил посмотреть на Erlang.<br>Больше меня удивило, что периодически пользователи Erlang доказывают, что Erlang круче, чем node.js.<br>
<br>Но, ведь, если я правильно понял, Erlang на уровень выше, чем node.js и AnyEvent.<br>Так почему они что-то пытаются
 доказать? Ведь слон на Моську не обращает внимания.<br>Или в Erlang есть какой-то
 подводный камень, который скрывают?<br><br>P.P.S<br>А что еще есть интересного в Perl? Подскажите направление?</div></div></div></div></div></div><br>--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<br></blockquote></div><br></div>