Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 3 Dołączył: 30.10.2010 Ostrzeżenie: (0%)
|
Witam,
mam pytanie co jest bardziej efektywne pod względem wydajności KOD 1:
KOD 2:
Chodzi mi czy bardziej efektywne jest otwieranie kilka razy skryptu php czy też stosowanie echo i tam dodawanie tagów html ? Nie chce obsługiwać szablonów itp. CHodzi mi tylko o te porównanie ? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%)
|
O rany, a skąd Ci wezmę benchmark, który robiłem dobre 5 lat temu? Mało Ci, że ze względu na jego wyniki zadałem sobie trud przepisania całego mechanizmu generowania kodu we wczesnych wersjach OPT? Ponadto różnicę w czasie bardzo łatwo wytłumaczyć. Bufor wyjściowy skryptu obsługuje tylko dwie operacje, które mogą być zainicjowane przez skrypt: doklejanie nowego tekstu i konwersja do wielkiego ciągu tekstowego (ob_get_clean()). Zatem, skoro nie musimy mieć dostępu w dowolne miejsce bufora, możemy zwłaszcza pierwszą operację zaimplementować dużo wydajniej, tworząc po prostu listę z kolejno doklejanymi kawałkami kodu. Gdy operujemy na ciągu tekstowym, PHP musi zakładać swobodny dostęp do niego, zatem przy doklejaniu musi realokować pamięć dla całego tekstu. Jeśli w danym miejscu nie będzie już wolnej pamięci, aby poszerzyć tekst o wymaganą ilość bajtów, trzeba zaalokować nowy blok i skopiować dotychczasową zawartość. Ale dobra, chcesz, to Ci zrobię takowy raz jeszcze.
Ad. podwójnych i pojedynczych cudzysłowów - nie chcę nic mówić, ale na PHP 5.3.4:
~0,62 s
~0,71 s Natomiast jeszcze kilka lat temu potwierdzam, że cudzysłowy były duuuużo wolniejsze, zwłaszcza jak się używało kodów formatujących. Cytat 1/100sek. to nie duży narzut w stosunku do tego co funduje OOP w większości CMS O panie, jakbym stosował Twoje metody, to byłbym chyba autorem najwolniejszych skryptów w całym Internecie (IMG:style_emoticons/default/smile.gif) . Jak 1/100 sekundy to mało, kiedy ja właśnie pracuję nad dość rozbudowaną stroną, która na moim kilkuletnim komputerku, i to z włączonymi opcjami debugowymi ma średni czas przetwarzania rzędu... 2/100 sekundy? (IMG:style_emoticons/default/smile.gif) Wiem, różnice w sprzęcie robią swoje, ale żeby wypowiadać się o 1/100 sekundy warto najpierw podać jakiś punkt odniesienia, bo jedna setna jednej setnej nierówna. Ogólnie przy mierzeniu czegokolwiek trzeba mieć na uwadze, że język cały czas się rozwija. Coś, co jeszcze 3 lata temu było wolne, teraz mogło dostać kopa dzięki optymalizacjom. Przykładowo, w PHP 5.4 ma pojawić się całkiem sporo ponoć niezłych optymalizacji tablic z haszowaniem, które są wykorzystywane m.in. do implementacji typu array oraz wszelkich rejestrów funkcji, metod itd. Ten post edytował Zyx 22.01.2011, 08:01:07 |
|
|
|
tabbi Szablony 21.01.2011, 15:33:58
kalmaceta różnica rzędu 1/100 sekundy jet dla Ciebie ważna -... 21.01.2011, 16:32:40
Zyx Pierwszy kod jest szybszy.
kalmaceta -> prosim... 21.01.2011, 17:15:36
kalmaceta optymalizacja takich pierdół mija się z celem szcz... 21.01.2011, 17:29:57
tabbi [PHP] pobierz, plaintext echo "A może to jest... 21.01.2011, 17:47:32
kalmaceta nie może być? może, tylko po co, cytuje za php.ne... 21.01.2011, 17:53:56
Mephistofeles Pierwszy sposób jest lepszy, co nie oznacza, że sz... 21.01.2011, 20:15:39
Zyx Powtarzam: jest szybszy, mierzyłem kiedyś . I wbre... 21.01.2011, 20:52:23
kalmaceta jaka różnica, przy jakich szablonach? poproszę o ... 21.01.2011, 23:59:20
thek Kalmaceta... Popatrz na to tak. Wyjście i wyjście ... 22.01.2011, 00:14:27
kalmaceta po 1. nie twierdze, że któreś jest szybsze - to se... 22.01.2011, 00:25:17
kiler129 Ja się odniosę natomiast do dbl quote vs single qu... 22.01.2011, 00:32:57
kalmaceta po 1. g... prawda to te testy - u mnie zawsze na k... 22.01.2011, 01:04:23
kalmaceta @Zyx widzisz nie wiesz na co odpowiadasz tu chodzi... 22.01.2011, 11:37:07
Zyx Przeczytałem i podałem Ci, że pracuję nad rozbudow... 22.01.2011, 14:12:31
matrik łoł, możecie mnie obsunąć albo i nie, ale
[PHP] po... 22.01.2011, 19:52:34
kalmaceta Zyx dlaczego demoscena pracuje na niskopoziomowych... 22.01.2011, 20:03:09
matrik kalmaceta ja już rozmawiałem z taką osobą co też m... 22.01.2011, 20:08:28
Crozin CytatPierwsze echo stosuje się bardzo rzadko, jeśl... 22.01.2011, 20:12:05
kalmaceta matrik a dlaczego nie możesz zrobić strony w c++? ... 22.01.2011, 20:20:44
Mephistofeles Z takiej samej przyczyny nie pisze się stron w C++... 22.01.2011, 21:30:52
kalmaceta @Mephistofeles zasłyszane i nie zupełnie prawdziwe... 23.01.2011, 12:53:30
Mephistofeles Oczywiście, że słyszałem. Tylko po co pisać kompil... 23.01.2011, 13:13:21
kalmaceta oczywiście masz racje jeśli chodzi o prostotę. ale... 23.01.2011, 13:58:18 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 13:17 |