Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP4 vs. PHP5
Forum PHP.pl > Forum > PHP
batman
Witam

Mam dosyć poważny problem z php. Moim zadaniem jest napisać aplikację, która będzie działać pod bardzo dużym obciążeniem. Z własnych testów oraz z testów innych ludzi wynika, że PHP4 jest szybsze od PHP5. Jestem skłonny zrezygnować z dodatkowych możliwości jakie daje PHP5, jeśli uda mi się zaoszczędzić nawet setną część sekundy.

Co o tym sądzicie i jakie macie doświadczenia?
NetJaro
Jeżeli to jest na prawdę duży projekt użyj PHP5. Większe możliwości. Moze dla niektórych przy mniejszych projektach PHP5 jest wolniejsze (chodź mi zawsze działa szybciej, nawet przy tych mniejszych) ma o wiele większe możliwości. Skoro to duży projekt - na pewno użyjesz bazy danych (+ cache). Wtedy tylko używac Open Power Drive (PDO + cache) ;-)

Trzeba iść z duchem czasu.. bo czas robi swoje ;-)
tansky
No i serwer... Nie ma sensu oszczędzać na procedurach, jeśli zamuli Ci blaszak. Kup/wynajmij uczciwą maszynę, dbaj o jej wydajność i będzie w porządku.
batman
Serwer będzie bardzo silną maszyną, więc problemy sprzętowe odpadają. Chodzi tylko i wyłącznie o wydajność samego php.

Według:

http://byster.net/?page_id=48

oraz

http://byster.net/?page_id=36#a1

PHP4 jest dużo szybsze w pewnych sytuacjach. I o te sytuacje właśnie mi chodzi. Ja naciskam adminów by pozostawić 5, ale "góra" chce szybkości a nie bajerów, których zwykły użytkownik i tak nie będzie widział.
athabus
Testów żadnych nie znam, ale wydaje mi się, że różnica nawet jeśli jest, to nie jest duża. To czego jestem na 100% pewien, to to, że zaoszędzić możesz znacznie więcej w innych miejscach -> np. Pisanie dobrego kodu, dobrze zaprojektowana baza danych + cache itd itp.

Inna sprawa to to, że kod pisany obiektowo jest wolniejszy od proceduralnego. I tutaj możesz jeszcze szukać jakichś oszczędności. Tyle tylko, że rodzi się pytanie czy na prawdę warto. Kod proceduralny jest na pewno trudniejszy w utrzymaniu i rozwoju. Zastanów się czy naprawdę warto bawić się w kod proceduralny pisany do tego w php4 dla wzrostu wydajności, który będzie tylko małym ułamkiem tego co zyskasz w innych miejscach.

//edit - dałeś linki do testów w czasie gdy pisałem biggrin.gif Różnice w większości przypadków nie są aż tak duże. Ja bym został na php5 - chyba, że naprawdę są jakieś poważne powody do przejścia ... cofnięcia się do wersji 4

//edit 2 - bajery w php5 są dla programisty a nie dla usera... Idąc tym tropem można robić strony tylko w html - będą jeszcze szybsze biggrin.gif
NetJaro
Cytat
Serwer będzie bardzo silną maszyną, więc problemy sprzętowe odpadają.

Silna nie zawsze znaczy wydajna smile.gif

Może być źle skonfigurowana (co jest najczęściej popełnianym błędem Administratorów). Nie zdziw się gdzie mój "zwykły" komp (PC) będzie silniejszy od Twojej bardzo silnej maszyny - kwestia konfiguracji. ;-)
Turgon
Tutaj zgadzam się z Jarkiem. Bardzo dużo zależy od konfiguracji i przedewszystkim odpowiednim pisaniem aplikacji i tutaj tkwi diabeł...
Po za tym kto robi pętle for na 10000 razy ?
batman
Sprawa serwera i jego konfiguracji leży w gestii administratorów i wiem, że jest to dobrze zrobione.

W kodzie również zastosowałem wszystkie "usprawniacze" poprawiające wydajność. Baza danych również jest zoptymalizowana.

Cytat
Po za tym kto robi pętle for na 10000 razy ?


Nie będzie takich pętli. Ale jeśli w tym samym momencie do jednego pliku, w którym znajduje się pętla for iterująca np do 10, będzie odwoływać się 1000 użytkowników spadek wydajności PHP5 jest zauważalny.

Cytat
Inna sprawa to to, że kod pisany obiektowo jest wolniejszy od proceduralnego.


Za duży jest to projekt, by się grzebać w pisanie kodu strukturalnie.
Turgon
A tutaj widzę popełniasz błąd w założeniu batman smile.gif . Otóż php obsłuży każdy proces osobno, więc co ma piernik do wiatraka ?
Po za tym jak chcesz żeby szybciej było daj więcej RAMu...
dr_bonzo
Cytat
Za duży jest to projekt, by się grzebać w pisanie kodu strukturalnie.

To jeszcze przelicz ile wyjdzie $$$ za druga maszyne a ile $$$ na twoja prace przy optymalizacji tysiecznych czesci sekundy.
batman
Maszyna już jest, kod jest już zoptymalizowany. Chodzi mi tylko o odpowiedź na pytanie dotyczące wydajności samego języka. Czy warto cofać się do PHP4?
nospor
Cytat
Czy warto cofać się do PHP4

Nie.
nasty
Cytat
Czy warto cofać się do PHP4

Nie, dlatego ze niedlugo juz wyjdzie php6, to bedziesz sie 2xCofac do tylu tongue.gif
batman
Skoro już wiemy, że nie warto cofoać się do PHP4 (argument o PHP6 nie przekonuje mnie winksmiley.jpg ) potrzenuję teraz tylko odpowiedzi na pytanie - dlaczego nie? Mam argumenty dla "góry", ale "góra" jest nastawiona na wydajność.
NetJaro
"Dlaczego PHP5":

- trzeba iść z duchem czasu, PHP4 nie będzie (?) juz dalej kontunowane;
- wcale nie jest taki wolniejszy, praktycznie nie widac różnicy;
- większe możliwości;
- większa wygoda pracy;

Dlaczego nie warto cofać się do PHP4?
Po co pracować w czymś, gdzie jest możliwość lepszej pracy?

Walkę tą można porównać do: Notatnik kontra phpEdit (bądź inny dobry edytor). Tyle, że jest mniejsza różnica szybkości niż w tym wypadku.
marast78
nie wiemy nawet co to za projekt więc jak możemy stwierdzić, że PHP5 będzie wolniejsze..? a jak już bardzo chcesz przyśpieszyć do napisz sobie DLL własnego i po sprawie smile.gif a co do 'for' to w PHP5 jest mała różnica w porównaniu z foreach (proponuje przejrzeć sobie strony o optymalizacji w php Optymalizacja w php), poza tym php nie jest jezykiem, w którym się pisze programy duże obliczeniowo bo podejrzewam, że o takim myślisz..proponuję pisać wtedy podprogramy w C lub C++ o ile masz serwer do swojej pełnej dyspozycji..a nawet w tych językach bez odpowiednich DLL nie wszystko da siię zrobić...jeśli zamierzasz parsować duże ilości tekstu to proponuję użyć GAWK bądź korzystać BASHA..ale tak naprawde nie wiemy coo to za projekt...poza tym w PHP5 masz wyjątki nie musisz pisać setek ifów by obsłużyć każdy błąd wystarczy użyć wyjątków...itd.
batman
Niestety nie mogę napisać o jaki projekt chodzi. Mogę jedynia napisać, że jest to aplikacja online i nie może być pisana w C++, Delphi i innych podobnych językach. O bibliotekach też myślałem, ale w obecniej chwili nie da się jeszcze tego zrobić, ponieważ klasy są w ciągłej rozbudowie.
NetJaro
Skoro jest to aplikacja.. hmm nie wiem czy dobrze rozumiem, ale AJAX tutaj by załatwił sporo w sprawie wydajności.. ;-)
I jeżeli dużo zapytań do bazy - drugi serwer pod bazę.
batman
Zapomniałem dodać, że aplikacja ma działać wszędzie. Pisząc wszędzie mam na myśli wszędzie winksmiley.jpg FF, badzIEwie, opera, lynx, safari, konqueror, itd. A co do serwera już pisałem, że jest to bardzo dobra maszyna.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.