[Warszawa-pm] WebNano

pp pp w webtel.pl
Nie, 9 Maj 2010, 14:37:15 PDT


On Sat, 8 May 2010 14:26:27 +0000, Tadeusz Sośnierz <tadzikes w gmail.com>
wrote:
(...)
> 
> Zastanawiam się czy to kwestia PSGI czy Placka samego w sobie. Oto
(...)

Skoro Dancer potrafi uzywac HTTP::Server::Simple::PSGI to znaczy,
ze ma w sobie obsluge PSGI.

jesli miedzy Dancera a serwer httpd wstawi sie jescze placka, to
dane requestu przetwarzane sa pewnie dwa razy, najpierw przez placka,
potem juz przez samego dancera. nic wiec dziwnego, ze dziala wolniej
ale to gdybanie, trzeba by przejrzec kod i zobaczyc co sie dzieje w
obu przypadkach


co ciekawsze prosta aplikacja dancera wg manuala 
#cat dancer.pl
#!/usr/bin/perl
           use Dancer;

         get '/hello/:name' => sub {
               return "Why, hello there " . params->{name};
           };

           dance;

#perl dancer.pl 
#ab -n 1000 http://localhost:3000/hello/123123

daje mi ca. 700 req/sek


aplikacja budowana 

# dancer -a d1
i pozniej dodane do d1.pm 
--
get '/hello/:name' => sub {
               return "Why, hello there " . params->{name};
           };
--
#perl d1.pl
#ab -n 1000 http://localhost:3000/hello/123123
daje juz ca 250 req/sek.

czyli builder dancera dodaje cos. 
cos co robi cos czego nie wiedac,
i spowalnia aplikacje ponad dwukrotnie
jakis logger, framework ?



obejrzalem sobie co robi plack, bazujac na tym profilingu .

kwadrans grzebania w kodzie i:
po drobnej przerobce przy niepotrzebnym kopiowaniu %ENV
z 750 req/sek zrobilo sie 850

a po wstawieniu 'return;' zaraz na poczatku
procedury 'log_line' w Plack::Middleware::AccessLog
zrobilo sie 1250 req/sek (mimo ze nie bylo
wlaczone logowanie, procedua byla uruchamiana, stad te 850)

log_line piekny kawalek kodu, kilka procedur zdefiniowanych wewnatrz
log_line,
wywolywanych wewnatrz regexpa w celu zbudowania wiersza w formacie
apchelog. zamiast sprintf ...

jakby pozastapowac te wszystkie wewnetrzne regexpy przez substr/index itp,
to
moze i daloby sie na placku dociagnac do 1500 req/sek,
czyli dociagnac do php.

regexpy sa straaaaaasznie kosztowne

nomen omen Dancer to chyba taki framework na psgi , cos a'la WebNano :)

--
pp



Więcej informacji o liście Warszawa-pm