Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wydajność PHP
dexc
post
Post #1





Grupa: Zarejestrowani
Postów: 0
Pomógł: 0
Dołączył: 2.05.2009

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


Spędziłem już wiele godzin szukając jakiś dobrych opracowań na temat wydajności PHP vs XYZ, jednak wszystkie opierały się na porównaniu szybkości samej maszyny wirtualnej. Nie wspominająco tym, że niemal wszyscy zdają się niewiedzieć, że da się skompilować PHP do bytecodu i to w sposób fajniejszy, bo dynamiczny, zamiast całego projektu na raz po wstawieniu przecinka...

No i oglądam sobie testy z których wynika, że interpretowany PHP jest 3x wolniejsze od Javy, trochę wolniejsze od Pythona (oczywiście jego wynik też wszyscy mierzą z czasem kompilacji).

Jednak nie ten konkretnie temat - niesprawieliwego mierzenia - chciałbym poruszyć. Niech PHP nawet będzie tym najwolniejszym językiem, jednak z tego co wiem - nikt nigdy tego argumentu nie używa, więc zaczynam mieć wątpliwości - 70-90% "kodu" systemów napisanych w PHP wykonuje się w czystym C! Wszystkie funkcje wbudowane są w C, połączenie z bazą jest w C, cały PECL jest w C.

Java i Python (nie wiem jak Ruby) mają całą bibliotekę napisaną w "samym sobie". Widziałem nawet jeden tekst w internecie: "nie bedziemy mierzyć szybkości sortowania w PHP za pomocą funkcji wbudowanej, bo to by było niesprawiedliwe" - WTF?!

Programowanie w PHP jest trochę jak skryptowanie systemu w BASH-u. To tylko ubranie gotowego kodu C w logikę biznesową - a może się mylę?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nasty
post
Post #2





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

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


Cytat(dexc @ 8.08.2009, 10:38:45 ) *
Java i Python (nie wiem jak Ruby) mają całą bibliotekę napisaną w "samym sobie". Widziałem nawet jeden tekst w internecie: "nie bedziemy mierzyć szybkości sortowania w PHP za pomocą funkcji wbudowanej, bo to by było niesprawiedliwe" - WTF?!

To jest nie do końca tak.. bo i tak nawet Java, C++, Ruby czy Python, łącząc się korzysta z systemowego API, wszystko z czegoś korzysta, tak skacząc z jednego poziomu abstrakcji do kolejnego (niższego) aż dojdziemy do Kernela systemu. Tak samo jest w przypadku PHP.

Cytat(dexc @ 8.08.2009, 10:38:45 ) *
Jednak nie ten konkretnie temat - niesprawieliwego mierzenia - chciałbym poruszyć. Niech PHP nawet będzie tym najwolniejszym językiem, jednak z tego co wiem - nikt nigdy tego argumentu nie używa, więc zaczynam mieć wątpliwości - 70-90% "kodu" systemów napisanych w PHP wykonuje się w czystym C! Wszystkie funkcje wbudowane są w C, połączenie z bazą jest w C, cały PECL jest w C.
Zamieniłbym to na "jest wykonywane przez coś napisanego w C".
Porównaj ten przykład z Twoją tezą na temat PHP-C:

  1. #include "stdio.h"
  2. #include "stdlib.h"
  3.  
  4. void exec_funct_one()
  5. {
  6. /* ... */
  7. }
  8.  
  9. void exec_funct_two()
  10. {
  11. /* ... */
  12. }
  13.  
  14. int main()
  15. {
  16. FILE* fp = fopen("skrypt.txt", "r");
  17.  
  18. int funct_num = 0;
  19. fscanf(fp, "%d", &funct_num);
  20. if(funct_num == 1)
  21. exec_funct_one();
  22. else if(funct_num == 2)
  23. exec_funct_two();
  24. else
  25. printf("Syntax error.\n");
  26. fclose(fp);
  27. return 0;
  28. }


i plik "skrypt.txt" który ma zapisane w sobie wartość "1" albo "2".

Czy o takim czymś mówimy, że skrypt.txt jest wykonany w C? bo przecież funkcja którą wykonuję (a raczej jest w nim polecenie żeby się wykonała) jest w C! nie.
Identyczną sytuację masz z PHP. w PHP masz listę rzeczy które mają się wykonać, w jakiej kolejność itd.. (oczywiście po analizie leksykalnej) i jest wykonywana. Gdzie? Z poziomu wywołań API danego systemu. Tak samo jest z każdą platformą.

Cytat(dexc @ 8.08.2009, 10:38:45 ) *
Programowanie w PHP jest trochę jak skryptowanie systemu w BASH-u. To tylko ubranie gotowego kodu C w logikę biznesową - a może się mylę?
j/w.

Ten post edytował nasty 9.08.2009, 14:41:17
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 18:49