![]() |
![]() |
![]()
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ę? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 634 Pomógł: 14 Dołączył: 27.05.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
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. 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:
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ą. 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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 18:49 |