![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 195 Pomógł: 0 Dołączył: 7.07.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
przyklady:
1)
2)
macie inne? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 16.11.2004 Ostrzeżenie: (0%) ![]() ![]() |
Dobrze, dobrze, moze to poprawili.
Co do przekazywania przez COW (copy on write) - ta technika jest jak najbardziej uzywana w innych jezykach. Tylko ze zwieksza ona wydajnosc i zmniejsza zuzycie pamieci tylko w pewnych, nielicznych sytuacjach i dlatego zaden jezyk nie ma tego wbudowane. Po prostu nierozsadne jest wbudowywac w jezyk mechanizmu, ktory w 90% przypadkow spowalnia, a przyspiesza rzadko i na dodatek nie mozna go obejsc. Przy kazdym dostepie do obiektu do zapisu musi byc wykonywana kontrola czy przypadkiem licznik referencji nie jest wiekszy niz 1. Takie sprawdzanie np. przy kazdym nawet malym elemencie tablicy wprowadza duzy narzut. Dlatego lepsze dla wydajnosci jest przekazanie jawnie przez referencje, jesli nie chcemy kopiowac, niz przekazanie przez wartosc w trybie COW. Tylko to niestety nie dotyczy php, bo tu jest odwrotnie (nawet jesli te roznice nie sa az takie jak najpierw opisywalem). W C++ czy Javie mozna sobie COW zaimplementowac bez problemu (w C++ niektore impl. STLa jeszcze go wspieraja, ale tez juz sie z tego wycofuja). Watek jest o glupich bledach: dla mnie to jest glupi blad. Bo skoro referencje nie przyspieszaja (nawet Twoj test to pokazal) to po co w ogole sa? Co do porownania wydajnosci z Java. Sorry, ale ten tescik Java 1.4.2 wykonala u mnie niewiele wolniej niz C. W zasadzie roznica miesci sie w zakresie bledu statystycznego. Programy pisane w Javie chodza niemal z szybkoscia programow natywnie kompilowanych (HotSpot / JIT), a czasem nawet szybciej(!), wiec php jeszcze pod tym wzgledem do Javy daleko. Tak czy inaczej ten tescik jest zbyt prosty, zeby wnioskowac o wydajnosci jezykow w ogole. Java zabiera znacznie wiecej zasobow niz php i widac to szczegolnie przy duzych aplikacjach. Jak masz malo RAMu i malo cache'u L2 to rzeczywiscie moze mocno zwolnic. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 01:27 |