<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div><span>"</span>Но не решай проблему, с которой <span id="misspell-0" class="">ещё</span> не столкнулся". <br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">А как-же пофантазировать?</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">Я же в образовательных целях...<br></div><div><br></div>  <div style="font-family: times new roman, new york, times, serif; font-size: 12pt;"> <div style="font-family: times new roman, new york, times, serif; font-size: 12pt;"> <div dir="ltr"> <font size="2" face="Arial"> <hr size="1">  <b><span
 style="font-weight:bold;"><span id="misspell-1" class="mark">From</span>:</span></b> <span id="misspell-2" class="mark">Andrei</span> <andrei.protasovitski@gmail.com><br> <b><span style="font-weight: bold;"><span id="misspell-3" class="mark">To</span>:</span></b> Moscow.pm group <moscow-pm@pm.org> <br> <b><span style="font-weight: bold;"><span id="misspell-7" class="mark">Sent</span>:</span></b> <span id="misspell-8" class="mark">Wednesday</span>, 17 <span id="misspell-9" class="mark">October</span> 2012, 12:05<br> <b><span style="font-weight: bold;"><span id="misspell-10" class="mark">Subject</span>:</span></b> <span id="misspell-11" class="mark">Re</span>: [Moscow.pm] <span id="misspell-14" class="mark">Распараллелить</span><br> </font> </div> <br><meta http-equiv="x-dns-prefetch-control" content="off"><div id="yiv1116453574"><br><br><div class="yiv1116453574gmail_quote">17 октября 2012 г., 10:38
 пользователь ksvs <span dir="ltr"><<a rel="nofollow" ymailto="mailto:ksvs1996@ymail.com" target="_blank" href="mailto:ksvs1996@ymail.com">ksvs1996@ymail.com</a>></span> написал:<br><blockquote class="yiv1116453574gmail_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 style="font-style:normal;font-size:16px;background-color:transparent;font-family:times new roman, new york, times, serif;"><span>То есть оптимальный вариант - это запускать столько процессов, сколько ядер.<br>
</span></div></div></div></blockquote><div><br>Оптимальный вариант -- решать конкретную задачу. <span id="misspell-16" class="mark">Парсишь</span> <span id="misspell-17" class="mark">Moscsow</span>.pm -- замечательно. Медленно? Оптимизируй. <span id="misspell-19" class="mark">Всё</span> равно медленно? <span id="misspell-20" class="mark">Распараллель</span>. <span id="misspell-21" class="mark">Упёрся</span> в ограничение памяти? Оптимизируй использование памяти. И т.д.<br>
<br>Но не решай проблему, с которой <span id="misspell-22" class="mark">ещё</span> не столкнулся. Помни, некоторые задачи <span id="misspell-23" class="mark">горазо</span> быстрее, дешевле и проще решаются <span id="misspell-24" class="mark">апгрейдом</span> железа, а не ковырянием кода. Так же следует иметь в виду, что "хороший" код не гарантирует хорошее приложение. Код в первую очередь должен решать твою задачу, код не пишется на века, он всего лишь расходный материал.<br>
<br><br><span id="misspell-25" class="mark">Распараллеливание</span> твоего <span id="misspell-26" class="mark">парсинга</span> решается простым <span id="misspell-27" class="mark">fork</span>'ом. Сделай сначала так, <span id="misspell-28" class="mark">поймёшь</span> потроха параллельного выполнения процессов. Потом можно попробовать использовать сторонние модули. Но начинать с модулей без понимания внутренностей -- это дот-нет-<span id="misspell-29" class="mark">вэй</span>: рискуешь стать <span id="misspell-30" class="mark">кодобабуином</span>.<br>
<br><span id="misspell-31" class="mark">ИМХО</span>, конечно.<br> </div><blockquote class="yiv1116453574gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;"><div><div style="font-size:12pt;font-family:times new roman, new york, times, serif;">
<div style="font-style:normal;font-size:16px;background-color:transparent;font-family:times new roman, new york, times, serif;"><span>Делать общение между ними при помощи <span id="misspell-32" class="mark">AnyEvent</span>::<span id="misspell-33" class="mark">MP</span>, а внутри каждого использовать асинхронные штучки на основе <span id="misspell-34" class="mark">AnyEvent</span> (например тот-же <span id="misspell-35" class="mark">AnyEvent</span>::<span id="misspell-36" class="mark">HTTP</span>).<br>
<br>Кстати, обнаружил у того-же автора модуль <span id="misspell-37" class="mark">Coro</span>::<span id="misspell-38" class="mark">MP</span>. Выглядит проще.<br><br>Ой, что я увидел!<br><a rel="nofollow" target="_blank" href="http://cpanratings.perl.org/dist/AnyEvent-MP">http://cpanratings.perl.org/dist/AnyEvent-MP</a><br>
Там говориться: "<span id="misspell-39" class="mark">Don</span>'t <span id="misspell-40" class="mark">use</span> <span id="misspell-41" class="mark">any</span> <span id="misspell-42" class="mark">modules</span> <span id="misspell-43" class="mark">by</span> <span id="misspell-44" class="mark">Marc</span> <span id="misspell-45" class="mark">Lehmann</span>..."<br>Что
 это?! Авторы <span id="misspell-46" class="mark">AnyEvent</span> и <span id="misspell-47" class="mark">IO</span>::<span id="misspell-48" class="mark">Async</span> ругаются между собой?<br>Как-то такие явления не радуют...<br></span></div><div><br></div>  <div style="font-family:times new roman, new york, times, serif;font-size:12pt;"> <div style="font-family:times new roman, new york, times, serif;font-size:12pt;">
 <div dir="ltr"> <font face="Arial"> <hr size="1">  <b><span style="font-weight:bold;"><span id="misspell-49" class="mark">From</span>:</span></b> <span id="misspell-50" class="mark">Daniel</span> <span id="misspell-51" class="mark">Podolsky</span> <<a rel="nofollow" ymailto="mailto:onokonem@gmail.com" target="_blank" href="mailto:onokonem@gmail.com">onokonem@gmail.com</a>><div class="yiv1116453574im"><br>
 <b><span style="font-weight:bold;"><span id="misspell-52" class="mark">To</span>:</span></b> Moscow.pm group <<a rel="nofollow" ymailto="mailto:moscow-pm@pm.org" target="_blank" href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a>> <br> <b><span style="font-weight:bold;"><span id="misspell-56" class="mark">Sent</span>:</span></b> <span id="misspell-57" class="mark">Tuesday</span>, 16 <span id="misspell-58" class="mark">October</span> 2012, 21:32<br>
 <b><span style="font-weight:bold;"><span id="misspell-59" class="mark">Subject</span>:</span></b> <span id="misspell-60" class="mark">Re</span>: [Moscow.pm] <span id="misspell-63" class="mark">Распараллелить</span><br> </div></font> </div><div class="yiv1116453574im"> <br>> Про асинхронные <span id="misspell-64" class="mark">либы</span> сказали уже много, но <span id="misspell-65" class="mark">либ</span> для работы с <span id="misspell-66" class="mark">форком</span><br>> вроде не
 было.<br>Чет не могу больше молчать :)<br><br>Смотрите. На сегодняшнем железе <span id="misspell-67" class="mark">многопроцессная</span> модель требует больших<br>процессорных ресурсов, чем <span id="misspell-68" class="mark">многотредная</span> или событийная, в связи с<br>высокими расходами на переключение контекста.<br>
<br>Расходы эти низкими не были никогда, но сейчас все остальное железо<br>подтянулось настолько, что сохранение-<span id="misspell-69" class="mark">восттановление</span> регистров и<br>очистка-загрузка процессорного <span id="misspell-70" class="mark">кеша</span> стала занимать заметное время в<br>общем зачете.<br>
<br> </div></div> </div>  </div></div><br>--<br>
Moscow.pm <span id="misspell-73" class="mark">mailing</span> <span id="misspell-74" class="mark">list</span><br>
<a rel="nofollow" ymailto="mailto:moscow-pm@pm.org" target="_blank" href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a rel="nofollow" target="_blank" href="http://moscow.pm.org/">http://moscow.pm.org</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><span id="misspell-75" class="mark">Andrei</span> <span id="misspell-76" class="mark">Protasovitski</span><br>< <span id="misspell-77" class="mark">andrei</span>[<span id="misspell-78" class="mark">dot</span>]<span id="misspell-79" class="mark">protasovitski</span>[<span id="misspell-80" class="mark">at</span>]<span id="misspell-81" class="mark">gmail</span>[<span id="misspell-82" class="mark">dot</span>]com ><br><span id="misspell-84" class="mark">Diemen</span>, <span id="misspell-85" class="mark">Netherlands</span><br>
</div><meta http-equiv="x-dns-prefetch-control" content="on"><br>-- <br>Moscow.pm <span id="misspell-88" class="mark">mailing</span> <span id="misspell-89" class="mark">list</span><br><a ymailto="mailto:moscow-pm@pm.org" 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><br> </div> </div>  </div></body></html>