Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung einfacher Codebeispiele für Leistungstests für PHP7

Detaillierte Erläuterung einfacher Codebeispiele für Leistungstests für PHP7

伊谢尔伦
伊谢尔伦Original
2017-06-27 10:14:122572Durchsuche

Testversion:

Alte Version PHP 5.5.29, neue Version PHP 7.0.0

Testmethode:

class PerformanceTest
{
    private $time;
    private $memory;
    public function begin()
    {
        $this->time = $this->getTime();
        $this->memory = $this->getMemory();
    }
    public function end()
    {
        $this->time   = $this->getTime()   - $this->time;
        $this->time   = round($this->time,7);//在这里才能格式化时间
        $this->memory = $this->getMemory() - $this->memory;
        $this->memory = $this->convert($this->memory);
        echo "time:{$this->time}秒<br />";
        echo "memory:{$this->memory}<br />";
    }
     
    public function getTime() 
    {  
        list($usec, $sec) = explode(" ", microtime());
        return ((float)$usec + (float)$sec);
    }
    public function getMemory()
    {
        return memory_get_usage();
    }
    public function convert($size)
    { 
        $unit=array(&#39;b&#39;,&#39;kb&#39;,&#39;mb&#39;,&#39;gb&#39;,&#39;tb&#39;,&#39;pb&#39;); 
        return @round($size/pow(1024,($i=floor(log($size,1024)))),2).&#39; &#39;.$unit[$i]; 
    } 
}

1 ein Millionen-Array und 500.000 Mal abfragen, ob der Schlüssel vorhanden ist

$a = array();
$b = new PerformanceTest();
$b->begin();
for($i=0;$i<500000;$i++){
$a[$i] = $i;
}
foreach($a as $i)
{
array_key_exists($i, $a);
}
$b->end();
/***
  php 5.5n
  time:0.131秒
  memory:40.15 mb
  php 7.0n
  time:0.0780001秒
  memory:14 mb
***/

Die Testergebnisse sind wie folgt:

➜ time php test.php

php test.php

0,60 s Benutzer

0,05 s System

98 % CPU

0,667 gesamt

➜ Zeit /usr/local/php7/bin /php test.php

/usr/local/php7/bin/php test.php

0,05 s Benutzer

0,02 s System

92 % CPU

0,073 insgesamt

PHP7 ist 9-mal schneller als PHP5.5

2. Generieren Sie eine halbe Million Arrays und fragen Sie eine halbe Million Mal ab, ob ein Wert vorhanden ist

$a = array();
$b = new PerformanceTest();
$b->begin();
for($i=0;$i<10000;$i++){
$a[$i] = $i;
}
foreach($a as $i)
{
in_array($i, $a);
}
$b->end();
/***
  php 5.5n
  time:0.6560001秒
  memory:845.49 kb
  php 7.0n
  time:0.095秒
  memory:388 kb
***/

➜Zeit php test.php

php test.php

0,79 s Benutzer

0,01 s System

99 % CPU

0,809 insgesamt

➜ Zeit /usr/local/php7/bin/php test.php

/usr/local/php7/bin/php test.php

0,08 Sekunden Benutzer

0,01 Sekunden System

97 % CPU

0,091 insgesamt

PHP7 ist 8,7-mal schneller als PHP5.5

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung einfacher Codebeispiele für Leistungstests für PHP7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn