Daniel Częstki senior php developer
konto usunięte
Temat: Ciekawy artykuł o wydajności frameworków PHP
Daniel Częstki:
http://www.ruilog.com/blog/view/b6f0e42cf705.html
Tak się zastanawiam co przyświecało twórcom ZF 2 że aż tak "poprawili" wydajność :) Nie dziwota, że wiele programistów dalej robi w ZF 1...
Daniel Częstki senior php developer
Temat: Ciekawy artykuł o wydajności frameworków PHP
no poprawili wydajność ale w drugą stronę ;)konto usunięte
Temat: Ciekawy artykuł o wydajności frameworków PHP
Daniel Częstki:
no poprawili wydajność ale w drugą stronę ;)
Ale aż tak?!? :) Nadszedł chyba dobry moment, żeby zainteresować się Symfony :)Piotr L. edytował(a) ten post dnia 28.02.13 o godzinie 13:48
Daniel Częstki senior php developer
Temat: Ciekawy artykuł o wydajności frameworków PHP
Zobacz schemat z xHProf dla ZF2 - masakra ;)Daniel Częstki senior php developer
Temat: Ciekawy artykuł o wydajności frameworków PHP
Piotr L.:
Daniel Częstki:
no poprawili wydajność ale w drugą stronę ;)
Ale aż tak?!? :) Nadszedł chyba dobry moment, żeby zainteresować się Symfony :)
tak się starali że się postarali. ale co się martwisz przecież serwery są coraz szybszeDaniel Częstki edytował(a) ten post dnia 28.02.13 o godzinie 13:54
konto usunięte
Temat: Ciekawy artykuł o wydajności frameworków PHP
Daniel Częstki:
Piotr L.:
Daniel Częstki:
no poprawili wydajność ale w drugą stronę ;)
Ale aż tak?!? :) Nadszedł chyba dobry moment, żeby zainteresować się Symfony :)
tak się starali że się postarali. ale co się martwisz przecież serwery są coraz szybsze
pos(ta)rali :)
Daniel Częstki senior php developer
Temat: Ciekawy artykuł o wydajności frameworków PHP
(ta) posrali - hehekonto usunięte
Temat: Ciekawy artykuł o wydajności frameworków PHP
Nie ma świeższych testów niż sprzed roku? :Pkonto usunięte
Temat: Ciekawy artykuł o wydajności frameworków PHP
Andrzej Łakomski:
Nie ma świeższych testów niż sprzed roku? :P
A co, brzydko Ci pachnie? :)
konto usunięte
Temat: Ciekawy artykuł o wydajności frameworków PHP
U mnie nie :P Artykuł tak ;)Myślę, że twórcy wszystkich fw nie siedzieli przez rok z założonymi rękami, więc ten test jest zupełnie niemiarodajny.Andrzej Łakomski edytował(a) ten post dnia 28.02.13 o godzinie 15:05
konto usunięte
Temat: Ciekawy artykuł o wydajności frameworków PHP
Andrzej Łakomski:
U mnie nie :P Artykuł tak ;)
Myślę, że twórcy wszystkich fw nie siedzieli przez rok z założonymi rękami, więc ten test jest zupełnie niemiarodajny.
Nie wiem jak inne frameworki, ale ZF 2, nawet jeżeli go przez ten czas nieco poprawili to i tak nie będą to aż takie znaczne różnice.
konto usunięte
Temat: Ciekawy artykuł o wydajności frameworków PHP
Andrzej Łakomski:
U mnie nie :P Artykuł tak ;)
Myślę, że twórcy wszystkich fw nie siedzieli przez rok z założonymi rękami, więc ten test jest zupełnie niemiarodajny.
myślisz że zmienili totalnie architekturę w międzyczasie? jakoś w to nie wierzę
konto usunięte
Temat: Ciekawy artykuł o wydajności frameworków PHP
Może zmienić nie zmienili, ale mogli dodać cache, których w S2 jest od groma.konto usunięte
Temat: Ciekawy artykuł o wydajności frameworków PHP
Wow, CodeIgniter nawet dobrze wypadł... Szkoda, że w zestawieniu nie ma DooPHP, o którym czytałem sporo dobrego (pod kątem lekkości/wydajności). Miał ktoś z nim do czynienia?
Łukasz
C.
Senior Technical
Architect
Temat: Ciekawy artykuł o wydajności frameworków PHP
Ostatnio miałem przyjemność (?) robić ewaluacje zarówno Symfony2 jak i Zend2 jako dwa frameworki do użytku "enterprise".Co do benchmarków, to jeden wynik jest dla mnie dość ciekawy: "Number to function calls"
Nie wiem czy zaglądaliście do kodu obydwu frameworków, ale imho:
1) Zend2 to nie framework bo nie narzuca żadnej struktury w przeciwieństwie do Symfony2.
2) Obiekty w Zendzie w większości przypadków posiadają pełną enkapsulacje i symetryczne api w przeciwieństwie do implementacji Symfony, polecam porównać klasy Zend/Http/Request i Symfony\Component\HttpFoundation\Request choć i w ZF2 są babole.
3) W Zend2 widać, że starają się używac Lazy Load gdzie się da, co z jednej strony zwiększa narzut na ilośc wywoływanych calli, z drugiej strony umożliwia podmiane / mockowanie dowolnej partii kodu i wyrzuca inicjalizacje kompozycji obiektu z konstruktora jak niestety ma to miejsce w Symfony2.
4) DI to imho pomyłka w obydwu przypadkach, bo po pierwsze od dawien dawna był wzorzec statycznej fabryki, a po drugie Lazy Load umożliwia wstrzykiwanie zależności tam gdzie one są faktycznie potrzebne i kiedy są potrzebne.
5) Annotacje w Symfony to dla mnie wymyślanie na siłe kolejnego języka, który musi być interpretowany runtime (!?) w technologii, która jest już wystarczająco wolna. W Javie anotacje są częścią jezyka i są sprawdzane już na etapie kompilacji, w PHP do proteza oparta o refleksje.
6) Pojemnośćiowo przyzałożeniu że goły vendor symfony składa się w ok 50% z testów to Zend2 zawiera nieco więcej kodu (o jakieś 10...20%), ale implementuje W CHOLERE więcej rzeczy Out Of The Box.
7) Ilość testów jednostkowych w Zendzie jest kilkukrotnie większa niż w Symfony co imho pozytywnie świadczy o jakości.
8) Zend2 dostarcza biblioteke Stdlib zawierającą abstrakcyjne koncepty typów i struktór danych, które są używane jako klasy bazowe w obrębie reszty kodu, co upraszcza jego stosowanie, w przeciwieństwie do Symfony2 w którego kodzie jest masa klas które realizują podobne koncepty jak chociażby wszelakie *Bag.php bez żadnej abstrakcji.
Krótko: dla mnie Zend2 wydaje się być przemyślaną biblioteką zorientowaną na większe projekty natomiast Symfony2 jest imho pisane na pałe, a historie o trzymaniu się wzorców projektowych niedokońca mają potwierdzenie w tym co znajduje się w środku przez co system jest właściwie monolitem: spróbojcie użyć kawałków symfony, zmienić koncepty lub zrobić coś non symfony way :)
Wydajność: jeżeli mówimy o typowej aplikacji internetowej w której akceptowany czas odpowiedzi jest poniżej trzech sekund to obydwa rozwiązania będą prezentowały się podobnie.
Efektywność: imho stworzenie bazowej aplikacji w Symfony2 jest dużo szybsze niż w Zendzie jednak z czasem rozrost projektu może zatrzeć różnice pomiędzy ZF2 a SF2, im bardziej customowy projekt tym większa jest walka z monolitem typu Symfony, Zend daje większą elastyczność.
Skalowalność: obydwa frameworki są ...wolne ...bardzo wolne :P
Imho tak długo jak aplikacjia to typowe MVC serwujące głównie kontent statyczny klaster Symfony2 z load balancerem i cache się sprawdzi. Im bardziej architektura aplikacji będzie odbiegała od tego co domyślne dla symfony tym więcej trzeba się narobić żeby coś zrobic.
Maintenance: po ok pół roku orki z systemem który powstał w oparciu o Symfony2, jak problem odbiega od tego co jest standardem dla aplikacji w Symfony2, to development bardziej koncentruje sie nad tym aby dany problem dostosować do symfony niż na samym rozwiązaniu problemu.
Podsumowanie: dla dużego systemu, który składa się z wielu komponentów poza samym kodem PHP renderującym html na "froncie" i ma być utrzymywany przez dłuższy czas i ze świadomością, że wymagania zmieniają się w locie, skłaniałbym się ku Zend2 ze względu na lepiej napisany kod i przedewszystkim elastyczność co do architektury, czego imho jest pozbawione Symfony2.Łukasz C. edytował(a) ten post dnia 28.02.13 o godzinie 21:35
Piotr R. ...
Temat: Ciekawy artykuł o wydajności frameworków PHP
Łukasz C.:[ciastko]
Ostatnio miałem przyjemność (?) robić ewaluacje zarówno Symfony2 jak i Zend2 jako dwa frameworki do użytku "enterprise".
Co do benchmarków, to jeden wynik jest dla mnie dość ciekawy: "Number to function calls"
Nie wiem czy zaglądaliście do kodu obydwu frameworków, ale imho:
5) Annotacje w Symfony to dla mnie wymyślanie na siłe kolejnego języka, który musi być interpretowany runtime (!?) w technologii, która jest już wystarczająco wolna. W Javie anotacje są częścią jezyka i są sprawdzane już na etapie kompilacji, w PHP do proteza oparta o refleksje.
Prawie prawda.
There are three annotation types that are predefined by the language specification itself: @Deprecated, @Override, and @SuppressWarnings.
Innymi słowy tylko te trzy typy anotacji są rozumiane przez kompilator.
Inne typy anotacji niestety ale tylko przez refleksje, które nawet w Java nie są szybkie, ani wygodne, ani bezpieczne.
Cała prawda
Anotacje rozwiązywane:
- na poziomie kompilacji (język)
- preprocesor (można napisać swój) z fizycznego pliku lub refleksje
- oznaczone @Retention(RetentionPolicy.RUNTIME) (refleksje)
[ciastko]Piotr Rusoł edytował(a) ten post dnia 28.02.13 o godzinie 21:58
konto usunięte
Temat: Ciekawy artykuł o wydajności frameworków PHP
Łukasz C.:
4) DI to imho pomyłka w obydwu przypadkach, bo po pierwsze od dawien dawna był wzorzec statycznej fabryki, a po drugie Lazy Load umożliwia wstrzykiwanie zależności tam gdzie one są faktycznie potrzebne i kiedy są potrzebne.
Rozwiń proszę, bo nie za bardzo wiem co masz na myśli.
Łukasz Mordawski Programista PHP
Temat: Ciekawy artykuł o wydajności frameworków PHP
Piotr Rusoł:
Łukasz C.:[ciastko]
Ostatnio miałem przyjemność (?) robić ewaluacje zarówno Symfony2 jak i Zend2 jako dwa frameworki do użytku "enterprise".
Co do benchmarków, to jeden wynik jest dla mnie dość ciekawy: "Number to function calls"
Nie wiem czy zaglądaliście do kodu obydwu frameworków, ale imho:
5) Annotacje w Symfony to dla mnie wymyślanie na siłe kolejnego języka, który musi być interpretowany runtime (!?) w technologii, która jest już wystarczająco wolna. W Javie anotacje są częścią jezyka i są sprawdzane już na etapie kompilacji, w PHP do proteza oparta o refleksje.
Prawie prawda.
There are three annotation types that are predefined by the language specification itself: @Deprecated, @Override, and @SuppressWarnings.
Innymi słowy tylko te trzy typy anotacji są rozumiane przez kompilator.
Inne typy anotacji niestety ale tylko przez refleksje, które nawet w Java nie są szybkie, ani wygodne, ani bezpieczne.
Cała prawda
Anotacje rozwiązywane:
- na poziomie kompilacji (język)
- preprocesor (można napisać swój) z fizycznego pliku lub refleksje
- oznaczone @Retention(RetentionPolicy.RUNTIME) (refleksje)
Ponadto, adnotacje w Symfony są interpretowane na bieżąco tylko w środowisku dev, a na produkcji są z tego co wiem cache'owane.
Piotr
Jasiulewicz
PHP/Java
professional
Temat: Ciekawy artykuł o wydajności frameworków PHP
Artykul ciekawy, ktos sie niezle napracowal (to fakt, a po tym fakcie, wszystko jest IMHO). Niemniej jednak przestrzegalbym przed wyborem frameworka, tylko pod wzgledem wydajnosci, jako, ze tak napawde takie statystyki niewiele znacza .Warto pamietac, ze czas CPU jest niewyobrazalnie tani, w porownaniu z czasem developera, tak wiec bralbym pod uwage, nie to, jak dany framework radzi sobie w laboratorium:
- czy team chce z danym frameworkim pracowac - wiekszosc dzisiejszych rozwiazan narzuca duzo wlasnego stylu, co ma znaczny wplyw na to jak rozwinie nam sie team, albo beda jechac singletonami, albo zrozumieja jak dzielic soft na reuzywalne pakiety - framework albo pomoze, albo chociaz nie zaszkodzi. Entuzjazm wzgledem danej technologii znacznie (przez duze Z) zwieksza wydajnosc zespolu.
- czy team umie w tym pracowac? Jeden plik kodu to wiecej niz 100 stron API docsa ;) a jeden ekspert od jakiegos frameworka, ktory potrafi nauczyc innych, moze znaczyc ze wlasnie to musimy wybrac, inaczej rozyko i bufory wytworzenia ida w kosmos bo malo kto wie co robi (przynajmniej przez jakis czas)
- jak latwo jest zatrudnic kogos kto zna dane rozwiazanie? Czy damy rade zweryfikowac, czy ta osoba faktycznie umie to co mowi, ze umie (certyfikat?)
- czy za rok bedzie mozna pograc nowa wersje? czy bedzie trzeba wszystko przeorac - wybierajac stosunkowo mlode rozwiazania, narazamy siebie (i klietnow) na duzo problemow zwiazanych z cyklem zycia produktu. Aplikacje webowe maja znacznie dluzsze cykle niz programy dostarczane w pakietach. Moze nam sie uda trafic na perle, ktora daleko zajdzie (przypomina mi sie uzywanie Doctrine 2 lata temu), a moze trafimy w zaulem nierozwijanego rozwiazania, efektywnie przezucacjac duzo developmentu ze spolecznosci na team.
- a finalnie i najwazniejsze IMHE - jak szybko jestesmy w stanie dostarczyc dzialajacy prototyp, a potem dzialajaca, przetesowana aplikacje (chodzi o to aby zapewnic kontraktowa jakosc) do klienta (nie wazne czy zewnetrznego, czy wewnetrznego)
Podobne tematy
-
PHP » Narzędzia do PHP -
-
PHP » php curl ftp download plików po dacie modyfikacji i po... -
-
PHP » php wyciąganie danych z pliku tekstowego -
-
PHP » Darmowy skrypt PHP do testów (quizów) online -
-
PHP » Jak zapisac dane z php w access log'u (nginx)? -
-
PHP » Programista PHP- projekt w Poznaniu -
-
PHP » counter.php -
-
PHP » Obciecie zdjęcia pod kontem w imagick php -
-
PHP » Różnice w wynikach z JS i PHP -
-
PHP » PHP przekazywanie danych -
Następna dyskusja: