Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Test szybkości stringów i zaskakujące wyniki, Jak wstawiać zmienne liczbowe do stringa
gWd
post
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 17.09.2006

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


Środowisko
PHP 5.2.1RC2
Apache 2.2.4

Test jest zerżnięty z manuala PHP, ale wyniki wcale nie pasują do tego, co tam piszą.

  1. <?php
  2. $var = 1;
  3. $timeTests = array();
  4. $timeTests[$p=0]['czas'] = microtime(true);
  5. $timeTests[$p]['znak'] = 'Start';
  6.  
  7. for( $x=0; $x < 10; $x++ )
  8. {
  9. for( $i=0; $i<100000; $i++ )
  10. {
  11. $string = " $var $var $var $var $var $var $var $var $var $var $var $var $var $var $var";
  12. unset( $string );
  13. }
  14. $timeTests[++$p]['czas'] = microtime(true);
  15. $timeTests[$p]['znak'] = 'cudzyslow';
  16.  
  17. for( $i=0; $i<100000; $i++ )
  18. {
  19. $string = ' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var;
  20. unset( $string );
  21. }
  22. $timeTests[++$p]['czas'] = microtime(true);
  23. $timeTests[$p]['znak'] = 'apostrof';
  24. }
  25.  
  26. echo '<br />';
  27. $timePrev = 0;
  28. foreach ($timeTests as $time)
  29. {
  30. echo $time['znak'].': ';
  31. echo ($time['czas'] - $timePrev).'<br />';
  32. $timePrev = $time['czas'];
  33. }
  34. ?>


Wyniki:
cudzyslow: 0.88375806808472
apostrof: 0.8967490196228
cudzyslow: 0.74423408508301
apostrof: 0.87470483779907
cudzyslow: 0.74281716346741
apostrof: 0.87087082862854
cudzyslow: 0.76653909683228
apostrof: 0.88087105751038
cudzyslow: 0.75698590278625
apostrof: 0.89448595046997
cudzyslow: 0.73796796798706
apostrof: 0.8895571231842
cudzyslow: 0.7416090965271
apostrof: 0.91190385818481
cudzyslow: 0.74819707870483
apostrof: 0.90215492248535
cudzyslow: 0.73282599449158
apostrof: 0.88878703117371
cudzyslow: 0.75126600265503
apostrof: 0.90079808235168

Opis wyników i wnioski
Jak widać stworzenie stringów przez łączenie tekstu i integera (' '.$var) jest wolniejsze o około 20% niż wstawienie tego integera do stringa(" $var")(IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !
Ale może ja coś źle robię?
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: 3.10.2025 - 14:30