![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Próba... ten sam ciąg znaków, te same zmienne w tych samych miejscach w ciągu znaków i wszystko w trzech funkcja, która każda z nich zwraca ten ciąg znaków w inny sposób. Funkcja EOF to heredoc. Funkcja stringA to cudzusłów. Funkcja stringB to apostrof. Jak myślicie, która będzie najszybsza?
Próba obejmowała przejście 50 iteracji pętli dla danej funkcji i przypisanie rezultatu do zmiennej. Każde wywołanie funkcji zostało liczone za pomocą microtime() i sumowane. Na końcu wynik dzielimy przez ilość iteracji i dostajemy wynik: EOF: 0.0131 s stringA: 0.0129 s stringB: 0.0256 s Kod użyty do próby znajdziecie tutaj: http://pastebin.com/NBEaUz5a Zawsze myślałem, że apostrofy są szybsze niż cydzysłów. A tu proszę, zaskoczenie. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Ilość prób jest zbyt mała, testy powinny być wymieszane (tj. powinieneś sprawdzać N razy opcję A, B, C, nie N razy A, N razy B, N razy C), powinieneś uwzględnić odchylenie standardowe.
2. Niepotrzebnie bawisz się w mikrooptymalizację. Nawet jak już znajdziesz najlepszą opcję dla danego przypadku, a przypadków tych będzie masa (bo szybkość będzie tutaj uzależniona od ilości użytych zmiennych (czyli ilości łączeń tekstów), ich długości, systemu operacyjnego, dokładnej wersji PHP i pewnie kilku innych rzeczy) i uda Ci się przyspieszyć kod o te 0.00006 sek. będzie to całkiem bezwartościowe w przypadku skryptu wykonującego się 0.05 sek. Czas, który tutaj marnujesz mógłbyś wykorzystać do optymalizacji rzeczywistych problemów. 3. Jeżeli potrzebujesz skorzystać z składni HERE/NEWDOC to już masz wskazówkę na to, że coś spieprzyłeś. (IMG:style_emoticons/default/wink.gif) Używaj tego, co w danej chwili wygodniejsze. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 16:39 |