Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wydajność naszych skryptów PHP
ixpack
post
Post #1





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

Ostrzeżenie: (0%)
-----


Coś mnie tknęło, przeprowadziłem kilka testów wydajnościowych. Chodziło mi o to, czy jest różnica, gdy w moim skrypcie np. w złożonej instrukcji warunkowej "if" będę używał określonej kolejności funkcji wbudowanych php, etc.

Jest różnica - i to wielka. Znalazłem ciekawą stronę http://www.phpbench.com/, gdzie podobne testy miały miejsce.

Oto co sam zaobserwowałem:

  1. $path = __DIR__.DIRECTORY_SEPARATOR."img/";
  2.  
  3. function test($path) {
  4. $t = microtime(true);
  5. while($i < 10000) {
  6. $content = scandir($path);
  7. foreach ($content as $a) {
  8. if ($a != '.' && $a != '..' && substr($a, -5, 1) != '.' && substr($a, -4, 1) != '.' && substr($a, -3, 1) != '.' && is_dir($path.$a)) $x.= $a.'<br />';
  9. }
  10. ++$i;
  11. }
  12. return (microtime(true) - $t);
  13. }
  14.  
  15. function test2($path) {
  16. $t = microtime(true);
  17. while($i < 10000) {
  18. $content = opendir($path);
  19. while (($a = readdir($content)) !== false) {
  20. if ($a != '.' && $a != '..' && substr($a, -5, 1) != '.' && substr($a, -4, 1) != '.' && substr($a, -3, 1) != '.' && is_dir($path.$a)) $x.= $a.'<br />';
  21. }
  22. closedir($content);
  23. ++$i;
  24. }
  25. return (microtime(true) - $t);
  26. }
  27.  
  28. echo test($path).'<br />';
  29. echo test2($path).'<br />';


Proste funkcje. Gdy wstawię is_dir() na początek funkcji warunkowej, to czas przetwarzania funkcji wzrośnie "dramatycznie", gdy szybki substr() wyrzucę na rzecz kilku znaków, aby kod "ładnie wyglądał", to czas wykonania funkcji również wzrośnie. Warto moim zdaniem czasami kilka znaków dodać do naszego skryptu, aby działał jak błyskawica. Kolejność jest ważna, więc jeżeli zależy nam na szybkości skryptu - pamiętajmy o tym.

Pewnie nie jest to odkrywcze dla większości wyjadaczy, ale może się jakiemuś samoukowi przyda (IMG:style_emoticons/default/smile.gif)

Czy macie może inne "rady", które wpływają na wydajność?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 17:09