Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Propel vs Doctrine - wynik testu - może jakiś komentarz ?
yankes
post 9.05.2010, 20:36:10
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 13.01.2006

Ostrzeżenie: (0%)
-----


wczoraj z okazji prac nad pewnym projektem i odwiecznego pytania: Doctrine vs Propel poszukałem i znalazłem

dla potomnych: http://code.google.com/p/php-orm-benchmark...unk/doctrine_12
prosty benchmark: PDO / Propel 1.4 / Propel 1.5 / Propel 1.5 ( with Cache ) / Doctrine 1.2 / Doctrine 2 / Doctrine 2 ( with Cache )

zanim zdecydujecie się samemu pogrzebać/testować pamiętajcie, że Doctrine 2 pracuje z php 5.3.2

oki.. wynik moich testów 'delikatnie' mnie zdziwił:
  1.  
  2. | Insert | findPk|complex| hydrate| with |
  3. |--------|--------|--------|--------|--------|
  4.  
  5. PDOTestSuite | 153 | 154 | 110 | 116 | 103 |
  6.  
  7. Propel14TestSuite | 1214 | 529 | 137 | 321 | 315 |
  8.  
  9. Propel15TestSuite | 1122 | 725 | 250 | 426 | 439 |
  10.  
  11. Propel15WithCacheTestSuite | 1026 | 453 | 171 | 346 | 331 |
  12.  
  13. Doctrine12TestSuite | 2168 | 3697 | 569 | 1990 | 2545 |
  14.  
  15. Doctrine2TestSuite | 189 | 503 | 426 | 1408 | 1284 |
  16.  
  17. Doctrine2WithCacheTestSuite | 203 | 543 | 137 | 769 | 431 |



z tego wynika, że bardzo popularny obecnie Doctrine 1.2 to niezły 'żółw'.....
może ktoś doda coś od siebie na ten temat ? snitch.gif bo może ja coś przeoczyłem ... wstydnis.gif

Ten post edytował yankes 9.05.2010, 22:58:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
xdev
post 17.09.2011, 20:26:47
Post #2





Grupa: Zarejestrowani
Postów: 39
Pomógł: 3
Dołączył: 17.09.2011

Ostrzeżenie: (0%)
-----


PDO pewnie ma "łatkę" wolnego bo gdyby puścić benchmark najprostszego api (mysql_*) to czasy byłyby prawdopodobnie jeszcze lepsze. Kiepskie wyniki ORM-ów wcale mnie nie dziwią. PHP do najszybszych języków nie należy, kod wypluwany przez ORM-y też z wydajnością ma niewiele wspólnego.

Z resztą żadna warstwa abstrakcji ani wirtualizacji jeszcze nigdy niczego nie przyspieszyła. Założenia przy tworzeniu takich systemów to nie wzrost prędkości.

Oczywiście macie rację, że czas programisty kosztuje dużo więcej niż nawet najlepszy sprzęt i gdyby kod był nawet 10 razy wolniejszy ale projekt można byłoby skończyć tydzień szybciej to by się pewnie w wielu przypadkach opłaciło. Jednak problem jest inny. SQL to świetny model, OOP do którego tłumaczy ORM jest strasznie "drewniane". Może wam się wydaje, że zaoszczędzicie trochę czasu na pisaniu prostych selectów po kluczu, ale szybko zrozumiecie, że kiedy trzeba zrobić coś bardziej skomplikowanego to SQL jest nie dość, że dużo prostsze to jeszcze bardzo elastyczne i łatwe w modyfikacji.

Lepiej bardzo dobrze poznać SQL niż uczyć się redundantnej technologii której jedynym plusem jest to, że chroni osoby całkowicie zielone przed SQL-Injection. Ściągnąć sobie jakieś dobre narzędzie do graficznego projektowania baz, żeby nie tracić czasu na klepanie w kółko tego samego. Zwłaszcza, że jeśli zaczniecie jakieś bardziej skomplikowane projekty to i tak się skończy na analizie czystego SQL-a i pisaniu kwerend z palca (macie 5 krotny spadek wydajności dla prostych selectów, dla bardziej skomplikowanych analiz danych zależnie od optymalizacji kwerendy mogą się wykonywać 2 dni albo 2 minuty).

Dla tabel poniżej 10-100k wierszy optymalizacja nie ma znaczenia, dlatego wydaje się, że ORM jest taki fajny... nawet nie taki wolny i tak się w nim szybko pisze projekty. Projekt się rozrośnie, będziecie brali ten garbage który wypluwa wasz ulubiuony ORM, wrzucali przed to EXPLAIN i klęli tongue.gif

http://en.wikipedia.org/wiki/Technical_debt
Design debt... szybciej stworzycie pierwszą wersję skryptu, ale za złą decyzję projektową jaką jest w większości wypadków użycia ORMa (jakiegokolwiek) będziecie "płacić" wolnym rozwojem projektu przez cały cykl życia kodu.
Go to the top of the page
+Quote Post

Posty w temacie
- yankes   Propel vs Doctrine - wynik testu - może jakiś komentarz ?   9.05.2010, 20:36:10
- - Zyx   A może byś tak jeszcze napisał, co oznaczają te cy...   17.05.2010, 18:14:43
- - yankes   Zyx: specjalnie, żeby nie było pytań o metodologię...   18.05.2010, 08:03:33
- - Zyx   Widzę, że dałeś. Sęk w tym, że nie wszyscy mają cz...   18.05.2010, 16:33:09
- - yankes   Zyx: testy były uruchamiane min 10 razy na 3 różny...   18.05.2010, 21:41:25
- - Zyx   W porządku, to może jeszcze byś odpowiedział na wą...   18.05.2010, 23:01:45
- - yankes   Zyx: wiem, że hydrację wyników do obiektów zamiast...   19.05.2010, 09:18:53
|- - stloyd   Cytat(yankes @ 19.05.2010, 11:18:53 )...   19.05.2010, 09:43:28
- - yankes   oki chyba tak .. bo tylko to znalazłem na stronie...   10.06.2010, 19:47:34
|- - murwazy   Cytat(yankes @ 10.06.2010, 20:47:34 )...   15.06.2010, 14:31:24
- - yankes   słaby to jest Doctrine i myślenie niektórych o now...   15.06.2010, 20:34:12
|- - murwazy   Cytat(yankes @ 15.06.2010, 21:34:12 )...   15.06.2010, 22:02:06
- - fifi209   Wyniki powiem, że mnie bardzo zadziwiły - myślałem...   16.06.2010, 19:33:38
- - Crozin   @fifi209: Może dlatego, że PDO nie jest ORMem?   16.06.2010, 20:22:00
|- - fifi209   Cytat(Crozin @ 16.06.2010, 21:22:00 )...   16.06.2010, 21:30:49
- - Pr0100   Cytatmyślałem, że PDO będzie na samym końcu, a tut...   16.06.2010, 23:05:06
- - xdev   PDO pewnie ma "łatkę" wolnego bo gdyby p...   17.09.2011, 20:26:47
- - javert   Czy może ktoś porównywał najnowsze wersje Propela ...   21.04.2015, 10:08:21


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 14:26