Всем привет!

Не холливар, просто для размышлений. Долгих :)


Перевел пример на nodejs - https://github.com/Meettya/node-url-shortener
старался по возможности ближе к исходному делать, дабы сравнение было валидно 
более-менее.

Если кратко:
-----
по скорости - 
perl -     Requests per second:    423.34
        Transfer rate:          42.17 
node -  Requests per second:    1323.04
        Transfer rate:          267.45

----
по стабильности - при попытке сделать на моем маке
./ab -n 10000 -c 130 -k http://192.168.1.2:8080/?url=$RANDOM
получаю
Can't locate URI/http.pm:   Too many open files at (eval 45) line 2, <> line 6.
AnyEvent::Handle uncaught error: Broken pipe at 
/Users/meettya/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/Twiggy/Server.pm
 line 601.

Если перегрузить ноду она просто делает отлуп ab, ничего не падает
(хз как его настраивать, не силен я в ab и во всем что с ним связано)

----
по расширяемости - для ноды это + 10 строк копипастного кода - и у вас кластер. 
та-даам!!

---
по читаемости - имхо паритет, в любом случае асинхронный код лапшеват выходит, 
можно отрефакторить, но пока лениво


все результаты здесь https://gist.github.com/3216375
+ можете погонять на своей машине, постарался облегчить процесс установки

Короче, если кто-то еще считает, что нода "сыро и медленно" - у вас устаревшие 
сведения. Сильно устаревшие.

PS. вот описание системы - 
perl - v5.16.0
node - v0.8.1
uname -a
Darwin TravelMate.local 11.4.0 Darwin Kernel Version 11.4.0: Mon Apr  9 
19:33:05 PDT 2012; root:xnu-1699.26.8~1/RELEASE_I386 i386

PPS. Пошел бы на удаленке на node-powered проект :)

On Jul 30, 2012, at 10:04 PM, Alexey Shrub wrote:

> Всем привет,
> 
> набросал для эксперимента простенький сокращатель ссылок на Twiggy
> https://github.com/worldmind/perl-url-shortener
> работает, но у меня пока нет полного понимания всё ли правильно сделано, 
> документации по твигги что-то совсем не нашёл, есть пример
> https://github.com/miyagawa/Twiggy/blob/master/eg/chat-websocket/chat.psgi
> но мне это мало помогло (видимо из-за коллбеков) и где-то откопал немного 
> иной стиль с возвратом анонимной сабы и
>  $w->write( "Short for $url is $server$short_url" );
>  undef $w;
> но не понятно какой способ рекомендуемый и чем отличается. Есть хоть какие-то 
> ещё доки и примеры?
> 
> Ещё думаю как его отрефакторить чтобы почитаемее было.
> 
> И падает он периодически, видимо поэтому
> https://rt.cpan.org/Public/Bug/Display.html?id=78177
> у кого-то стабильно работает?
> 
> -- 
> Alexey Shrub
> -- 
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org

-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить