Heim > Backend-Entwicklung > PHP7 > Ist PHP7 wirklich so mächtig?

Ist PHP7 wirklich so mächtig?

醉折花枝作酒筹
Freigeben: 2023-02-18 07:04:01
nach vorne
2052 Leute haben es durchsucht

Seit der offiziellen Veröffentlichung von PHP7 ist es eineinhalb Jahre her, dass es um ein Vielfaches schneller sei als die alte Version. Die Geschwindigkeit und Effizienz verschiedener Open-Source-Frameworks oder Systeme, die auf PHP7 laufen, sei gestiegen Wie auch immer, sowohl die Medien als auch die Entwickler sind hier, um das Feuer anzufachen, nein, es sollte voller Lob sein. Heute werden wir es testen und die Wirkung sehen.

Ist PHP7 wirklich so mächtig?

Es ist eineinhalb Jahre her, seit PHP7 offiziell veröffentlicht wurde. Es wurde behauptet, es sei um ein Vielfaches schneller als die alte Version, als es erstmals herauskam. Verschiedene Open-Source-Frameworks oder Systeme, die auf PHP7 liefen, haben ihre Geschwindigkeit erhöht Egal, ob es die Medien oder die Entwickler sind, die das Feuer schüren, nein, sie sollten es loben.

Ich werde einfach zusehen, wie du dich cool verhältst und nichts sagst.

Im Allgemeinen bin ich der Letzte, der Mobiltelefonsysteme aktualisiert, weil ich nicht in die Falle tappen möchte. Schließlich werden Systeme wie iOS und Android Fehler haben, ganz zu schweigen von den am häufigsten gehackten Sprachen der Welt .

Heute ist es an der Zeit zu sehen, ob PHP7 so großartig ist, wie die Legende sagt.

Zwei PHP-Versionen installieren

http://php.net/ Es gibt bereits die neueste Version von PHP7, Sie können sie selbst herunterladen.

Um die Leistung von PHP5 und PHP7 zu testen (PHP6 wurde aufgegeben, Distressed 1s), habe ich zwei PHP-Versionen in verschiedenen Verzeichnissen installiert.

Der Installationsprozess wird übersprungen, unabhängig von der Installation des Quellcodes oder des Paketverwaltungstools. Merken Sie sich einfach Ihren eigenen Pfad.

PHP7:

# /usr/local/php7/bin/php -v
PHP 7.1.5 (cli) (built: May 13 2017 23:36:41) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
Nach dem Login kopieren

PHP5:

# /usr/bin/php -v
PHP 5.6.30 (cli) (built: Jan 19 2017 22:31:39) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
Nach dem Login kopieren

Umgebungsbeschreibung: Um die besten Testergebnisse zu gewährleisten, wurde dieser Test direkt in der Produktionsumgebung durchgeführt, die näher an der realen Situation ist.

operierendes System: CentOS 7.2 64-Bit

Basic-Konfiguration: 1 Core 1 GB 1Mbit / s

Host Marke: Tencent Cloud

Competition zwischen Php7 und Php5

1. PHP5-Versionstest:

$arr = array();
for ($i = 0; $i < 500000; $i++) { 
    $arr[$i] = $i; 
    }
    $tmp = array(); 
    foreach ($arr as $i) { 
        if ($i % 2 == 0) { 
            $is_exists = array_key_exists($i, $arr);
            if ($is_exists) { 
                array_push($tmp, $i); 
                } 
            }
        }
Nach dem Login kopieren

PHP7-Versionstest:

time /usr/bin/php test.php 
real    0m0.301s
user    0m0.239s
sys     0m0.050s
--------------------------
time /usr/bin/php test.php
real    0m0.310s
user    0m0.241s
sys     0m0.054s
--------------------------
time /usr/bin/php test.php
real    0m0.289s
user    0m0.238s
sys     0m0.050s
Nach dem Login kopieren

Aus den Daten geht hervor, dass der reine PHP-Skripttest zeigt, dass die Leistung von PHP7 um das Drei- bis Vierfache verbessert wurde.

2.php-Datenbankbetriebstest

Zuerst erstellen wir eine Benutzertabelle:

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

real    0m0.087s
user    0m0.063s
sys     0m0.024s
-------------------------------------
time /usr/local/php7/bin/php test.php

real    0m0.106s
user    0m0.073s
sys     0m0.033s
--------------------------------------
time /usr/local/php7/bin/php test.php

real    0m0.083s
user    0m0.061s
sys     0m0.022s
Nach dem Login kopieren

Fügen Sie ein Datenelement in die test_user-Tabelle ein:

Table: test_user
Create Table: CREATE TABLE `test_user` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(100) NOT NULL DEFAULT &#39;&#39;, PRIMARY KEY (`uid`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
Nach dem Login kopieren

Erstellen Sie das Datenbanktestskript test_db.php und stellen Sie sicher, dass beide PHP-Versionen vorhanden sind die PDO-Erweiterung installiert.

insert into test_user (uid,name) values (1,"dada");
MariaDB [test]> select * from test_user;
+-----+------+
| uid | name | +-----+------+ | 1 | dada | +-----+------+
Nach dem Login kopieren

Auf meinen beiden PHP-Versionen ist PDO installiert (verwenden Sie die Erweiterung php_mysql nicht mehr, sie ist veraltet, PHP7 wurde komplett aufgegeben und mysqli wird nicht empfohlen).

Als nächstes schreiben wir über PDO ein Skript, um den Leistungsvergleich der ausgewählten Ausführung 500.000 Mal zu testen:

/usr/bin/php -m|grep pdo
pdo_mysql
pdo_sqlite

/usr/local/php7/bin/php -m|grep pdo
pdo_mysql
pdo_sqlite
Nach dem Login kopieren

PHP5 test test_db.php:

$host = "yourHost";
$user = "yourUser";
$pass = "yourPass";
$db   = "test"; 
$port = 3306; 
try { 
    $dbh = new PDO("mysql:host=$host;dbname=$db", $user, $pass); 
    echo "Connected<p>"; 
} 
catch (Exception $e) { 
    echo "Unable to connect: " . $e->getMessage() ."<p>"; 
    } 
$sql = "select SQL_NO_CACHE * from test_user;"; 
$tmp = array(); 
for ($i=1; $i<=500000; $i++) { 
    $ret = $dbh->query($sql); 
    foreach ($ret as $row) { 
        $tmp[&#39;id&#39;] = $row[&#39;id&#39;]; 
        $tmp[&#39;name&#39;] = $row[&#39;name&#39;]; 
        } 
    }
Nach dem Login kopieren

PHP7 test test_db.php:

time /usr/bin/php test_db.php
real    0m48.396s
user    0m11.149s  
sys     0m3.998s

real    0m51.447s
user    0m11.800s
sys     0m4.395s

real    0m51.517s
user    0m11.733s
sys     0m4.439s
Nach dem Login kopieren

Dieses Mal führte das Skript 500.000 Abfragen aus Die Benutzerausführungszeit von Skripten, die von PHP7 ausgeführt werden, ist fast eine Sekunde kürzer als die von PHP5! Es ist eine Sekunde weniger, nicht eine Millisekunde.

3.PHP-Framework-Test

thinkphp

  • Das Thinkphp-Framework ist definitiv die erste Wahl in China, wählen Sie das neueste thinkphp5. Ich habe die Version thinkphp5.0.9 direkt von der offiziellen Website heruntergeladen.

(1) Framework-Eingangstest

    Test unter PHP5:
  • real    0m47.900s
    user 0m9.875s 
    sys 0m4.130s 
    real 0m46.977s 
    user 0m9.760s 
    sys 0m3.983s 
    real 0m50.010s 
    user 0m10.268s 
    sys 0m4.307s
    Nach dem Login kopieren
  • Test unter PHP7:
time /usr/bin/php ./public/index.php
real    0m0.036s
user    0m0.026s 
sys 0m0.010s 
real 0m0.038s 
user 0m0.026s 
sys 0m0.012s 
real 0m0.041s 
user 0m0.032s 
sys 0m0.009s
Nach dem Login kopieren

Unter dem Eingangstest können Sie sehen, dass es keinen großen Unterschied zwischen PHP und PHP7 gibt, PHP7 jedoch immer noch geringfügig ist etwas schneller.

(2) Framework-Logiktest

Wiederverwendung der Logik des ersten Schritts am Framework-Eingang:

    time /usr/local/php7/bin/php ./public/index.php
    real    0m0.027s
    user    0m0.021s
    sys     0m0.005s
    
    real    0m0.027s
    user    0m0.018s
    sys     0m0.009s
    
    real    0m0.025s
    user    0m0.023s
    sys     0m0.002s
    Nach dem Login kopieren
  • PHP5-Version:
    <?php
    namespace app\index\controller; 
    class Index { 
        public function index() { 
            $arr = array(); 
            for ($i = 0; $i < 500000; $i++) { 
                $arr[$i] = $i;
            } 
            $tmp = array(); 
            foreach ($arr as $i) { 
                if ($i % 2 == 0) { 
                    $is_exists = array_key_exists($i, $arr); 
                    if ($is_exists) { 
                        array_push($tmp, $i); 
                        } 
                    } 
                } 
            } 
      }
    Nach dem Login kopieren
  • PHP7-Version:
time /usr/bin/php ./public/index.php
real    0m0.538s
user    0m0.463s 
sys 0m0.072s 
real 0m0.454s 
user 0m0.386s 
sys 0m0.065s 
real 0m0.387s 
user 0m0.331s 
sys 0m0.055s
Nach dem Login kopieren

Verwenden Sie die PHP7-Version im thinkphp-Framework und die Leistung Die Verbesserung entspricht in etwa der von PHP5, der 4-fachen Version!

laravel

  • Dann testen wir das beliebteste PHP-Künstler-Framework.

(1) Framework-Einstiegstest

PHP5-Version:

    time /usr/local/php7/bin/php ./public/index.php
    real    0m0.150s
    user    0m0.123s
    sys     0m0.024s
    
    real    0m0.137s
    user    0m0.105s
    sys     0m0.031s
    
    real    0m0.123s
    user    0m0.096s
    sys     0m0.026s
    Nach dem Login kopieren
  • PHP-Version
    time /usr/bin/php ./public/index.php
    
    real    0m0.104s
    user    0m0.081s 
    sys 0m0.022s 
    real 0m0.148s 
    user 0m0.122s 
    sys 0m0.025s 
    real 0m0.122s 
    user 0m0.100s 
    sys 0m0.021s
    Nach dem Login kopieren
  • Wir können sehen, dass es im Framework-Einstiegstest von Laravel keinen großen Leistungsunterschied zwischen PHP5 und PHP7 gibt, aber sogar PHP5 ist am schnellsten mit 0,081 s ist es auch langsamer als die langsamsten 0,067 s der PHP7-Version. PHP7 ist also immer noch besser.

(2) Framework-Logiktest

Versuchen Sie, ein wenig Logik wie thinkphp hinzuzufügen, um die Testlogik wiederzuverwenden. Ändern Sie zunächst das Laravel-Routing und rufen Sie direkt die Indexmethode von UserController auf:

    time /usr/local/php7/bin/php ./public/index.php
    
    real    0m0.079s
    user    0m0.064s
    sys     0m0.015s
    
    real    0m0.081s
    user    0m0.067s
    sys     0m0.014s
    
    real    0m0.067s
    user    0m0.054s
    sys     0m0.013s
    Nach dem Login kopieren
  • Schreiben Sie die Testlogik in die Indexmethode:
    Route::get(&#39;/&#39;, &#39;UserController@index&#39;);
    Nach dem Login kopieren
  • PHP5-Version
public function index() { 
    $arr = array(); 
    for ($i = 0; $i < 500000; $i++) { 
        $arr[$i] = $i; 
    } 
    $tmp = array(); 
    foreach ($arr as $i) { 
        if ($i % 2 == 0) { 
            $is_exists = array_key_exists($i, $arr); 
            if ($is_exists) { 
                array_push($tmp, $i); 
             } 
         } 
      } 
  }
Nach dem Login kopieren

PHP7-Version

time /usr/bin/php ./public/index.php
real    0m0.510s
user    0m0.377s 
sys 0m0.079s 
real 0m0.627s 
user 0m0.447s 
sys 0m0.091s 
real 0m0.519s 
user 0m0.436s 
sys 0m0.079s
Nach dem Login kopieren

Die Leistung von PHP7 wurde um das Drei- bis Vierfache verbessert

Empfohlenes Lernen:

php-Video-Tutorial

Fazit:Dieser Artikel macht einen einfachen Vergleich zwischen PHP7 und PHP5. Ob in reinen PHP-Skripten oder in Frameworks, die hohe Leistung von PHP7 ist konsistent.

PHP7 ist sehr schnell, PHP7+OpCache ist sehr schnell, PHP7 ist wirklich großartig, die neue Ära von PHP ist angebrochen, beeilen Sie sich und nutzen Sie es!

Das obige ist der detaillierte Inhalt vonIst PHP7 wirklich so mächtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage