Porównanie wydajności frameworków
Posted by Jarosław Zabiełło Sun, 04 Feb 2007 21:54:00 GMT
Ciekawe i dosyć dokładne porównanie wydajności paru frameworków:
- CodeIgniter (PHP)
- Catalyst (Perl)
- Django (Python)
- Django (Python + Psyco)
- RubyOnRails (Ruby)
- Symfony (PHP)
- TurboGears (Python)
Django bez trudu zdeklasowało konkurencję. Szkoda, że w porównaniu nie uwzględniono Pylonsów i CakePHP. Bardzo też dziwne, że nowy Rails 1.2.1 w tych testach jest mocno wolniejszy od starszej wersji 1.1.6. Frameworki pehapowe okazały się najwolniejsze. Najgorszy okazał się pehapowy Symfony. Jest skomplikowany i wolny, 35x wolniejszy od Django!


Kanały IRC![[Dilber w Onecie]](/images/larry.png)


Ciekawe skąd wynika powolność PHP. Zapewne przez sztuczne stosowanie technik obiektowych. Wydaje mi się, że można napisać framework w php’ie, który byłby najszybszy. Tylko musiał by on mieć swoją filozofię dopasowaną do php’a.
Pamiętaj że Pythonowe frameworki kompilują kod do bytecodu. W tym miejscu dopatrywał bym się “słabości” PHP’a (choć nie tylko).
Kod php tez mozna skompilowac do zend-a. Aczkolwiek to juz kosztuje kase…
http://www.cms.rk.edu.pl/w/p/benchmark-cmsw-i-pod-obcieniem/ – testowałem PHP ale dla porównania jest djangowskie cms.rk.edu.pl pod dev serverem i postgresem ;)
Nie rozumiem :| – Dziwna numeracja starsza wersja ma wyzszy numer.
No szkoda. Ciekawe co by prezentowal w powyzszym benchmark’u PYLONS.
Apropo PHP – Co Pan sadzi o CodeIgniter w porownaniu do CakePHP ? Jestem bardzo zainteresowany Pana opinia na ten temat, poniewaz nie zauwazyłem na Pana blogu nic na temat framework’a CodeIgniter
Zakradła się literówka do tekstu. Powinno być 1.1.6 (już poprawiłem). Nie znam CodeIgniter. Kiedyś próbowałem coś dłubać w Symfony i CakePHP, ale szybko się zniechęciłem. Wolę oryginał niż jego naśladowców. Jak ktoś zakosztował komfortu pracy z Ruby on Rails to potem PHP wydaje mu się koszmarkiem. Od dłuższego czasu nie używam więc PHP do nowych projektów. Szkoda mi czasu na PHP. W Rails i Django pracuje się znacznie szybciej i przyjemniej.
widziałeś web.py ? osobiście mój #1. Choć nie jest to taki framework jak powyższe to jak dobrze ktoś określił: Sama przyjemność.
Tyle że web.py nie ma żadnych ułatwiaczy i do tego wszystko razem. Do średnich i większych projektów to utrudnia a nie pomaga
w tym web.py nawet jakiegos prozadnego API do bazy nie widac – to nie jest rok 2000 zeby sie do bazy przez SQL dostawac ;)
wiecie… jak kto woli. Dla mnie webpy jest świetny bo nie ogranicza mnie w żaden sposób, do tego jest wyjątkowo prosty. Pisze dość duży projekt w webpy i wcale mi nie utrudnia.
Co do sql, to przecież możesz mieć co chcesz, chociażby SQLObject.
Szkoda, że nie wzięto pod uwagę frameworków do Javy. Jak robiłem porównanie FCGI z frameworkami Javy to nie było większych różnic – Java tylko o ok. 20% wolniejsza. Myślę, że Java 6 w trybie server zdeklasowałaby Pythona pod względem szybkości.
Szybkość frameworków nie jest wcale taka ważna. I tak na ogół wszystko zapycha się na bazie danych. Ważna jest więc architektura – np. dobre zaprojektowanie mechanizmów buforowania danych.
Java6 może jest szybsza jako język, i co z tego? Assembler jest jeszcze szybszy.
nowsza wersja tego testu (z uwzględnieniem eAcceleratora dla PHP) http://www.alrond.com/en/2007/feb/04/in-addition-to-the-test-of-mvc-frameworks/ pokazuje, że frameworki dla PHP też mogą być szybkie, a w przypadku codeigniter + eAccelerator – pobić Ruby on Rails :) Wg. syntetycznych testów http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all Ruby jest znacznie wolniejszy od PHP. Dlatego należą się gratulacje dla twórców RoR za osiągi tego frameworku. Python górą :) @krolik – Java server 6, zgniata Pythona (choć jest pamięciożerna). A najszybszy jest kod maszynowy :)
Porownywanie w ten sposob frameworkow jak w artkule to po prostu bzdura. Jaki ma sens testowanie domyslnych parametrow, kiedy jedna zmiana zmienia drastycznie wyniki testow. np wystarczy wlaczych cache configu w symfony ( bez cache kazdy request to parsowanie wielu plikow yml )i juz bedzie kilkanascie razy szybciej jesli chodzi o typowe “hello world”. I jesli chodzi o PHP to wystarczy dodac eAccelelator. Realna aplikacja to nie “hello world”. Pisanie ze np Symfony jest 35 razy wolniejsze od Diango jest smieszne. Zapewniam ciebie ze bedzie mozliwe takze takie porownanie w druga strone wszystko zalezy od zbyt wielu czynnikow, aby ferowac wyroki na zasadzie wyswietlania 5 linijek tekstu i mierzenie ile czasu to zajelo. Szczery LoL