Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Test-Hidef-Leistung

PHP-Test-Hidef-Leistung

墨辰丷
墨辰丷Original
2018-06-11 16:44:151684Durchsuche

Dieser Artikel stellt hauptsächlich die Verwendung der Hidef-Erweiterung anstelle von Definieren in PHP vor, um die Leistung zu verbessern. Außerdem werden die Installationsmethode und Anwendungsbeispiele vorgestellt

Die Website muss neu sein. Fügen Sie eine Konstante hinzu, öffnen Sie die lokale Datei config.php und denken Sie an die vor einigen Jahren getesteten Hidef- und APC-Lösungen zur Verbesserung der Definitionsleistung.
Mein Programm hat unterschiedliche Konfigurationen für die Entwicklungs-, Test- und Produktionsserver. Ich verwende ein Array, um alle Konstanten zu definieren, die definiert werden müssen, und überprüfe dann, ob es eine apc_load_constants-Funktion gibt , Batch-Definition. Wenn Sie apc verwenden, müssen Sie jedes Mal, wenn Sie eine Konstante hinzufügen, $key ändern, damit es wirksam wird.

Nachdem die Test- und Produktionsserver-PHP auf 5.4 aktualisiert wurden, verwendet der Opcode-Cache Zend Opcache und APC ist nicht mehr installiert. Da der APC-Benutzercache verwendet wird, habe ich zusätzlich Apcu installiert und die Verwendung ist genau die gleiche wie bei APC, sodass das Programm überhaupt nicht geändert werden muss. Allerdings unterstützt apc_load_constants und apc_define_constants nicht, sodass die apc-Lösung nicht verwendet werden kann. Ich bin auf die offizielle Website gegangen und habe die neueste Version von hidef 0.1.13 installiert, die am 12. Juli 2012, also vor mehr als einem Jahr, stabil veröffentlicht wurde.

Ein einfaches Programm geschrieben, um die definierte Zeit zu testen. Die 1000-malige Ausführung dauert etwa 2,8 ms. Wenn also für eine mittelgroße Website (z. B. PHP wird 10 Millionen Mal am Tag ausgeführt) 25 Konstanten pro Seite definiert werden, dauert dies etwa 10000000*25/1000*2,8=700000 ms pro Tag, was 700 Sekunden entspricht. Durch die Verwendung von hidef können fast 700 Sekunden PHP-Laufzeit pro Tag eingespart werden.
Werfen wir einen Blick auf die Leseleistung. Der Test liest konstant 1 W, und die Werte sind alle 1, also 37 ms bzw. 0,7 ms. Wenn es also 10 Millionen Mal am Tag verwendet wird und durchschnittlich 20 Konstanten pro Seite verwendet werden, dauert es 740 Sekunden, während die Verwendung von hidef 14 Sekunden dauert, also noch mehr als 700 Sekunden.
Die Einsparung von 1400 Sekunden PHP-Laufzeit pro Tag ist zwar unbedeutend, aber es ist immer gut und einen Versuch wert. Schließlich ist die Wahrscheinlichkeit, dass sich Definitionsparameter ändern, sehr gering.
Wenn die definierten Parameter geändert werden müssen, ändern Sie einfach die Konfigurationsdatei und laden Sie dann php-fpm neu.

Spezifische Installationsmethoden von hidef finden Sie unter: Installation und Verwendung von hidef, einer PHP-Erweiterung, die die Definitionsleistung verbessert

Suchen Sie in Baidu nach „hidef“ und drittens Ort ist eine Kopie meines Blog-Beitrags Website: (Die Installation und Verwendung von hidef, einer PHP-Erweiterung, die ich zur Verbesserung der Definitionsleistung veröffentlicht habe, wurde auf den ersten drei Seiten nicht gefunden. Anscheinend weist Baidu einige Abweichungen bei der Identifizierung des Originals auf.

Baidu sucht nach „hidef php“, diese Website steht an erster Stelle, die zweite ist die offizielle Website, und meine ist an dritter Stelle.
gg sucht nach „hidef php“, die erste offizielle Website, die dritte Ein weiterer Originalartikel, und meiner ist im vierten. 360-Suche nach „hidef php“, der zweite ist meiner und der dritte ist ein weiterer Originalartikel .

Dieser Artikel wurde erstellt, um zu sehen, ob es in Ordnung ist, den ersten oder diesen Artikel mit 0 zu bewerten.


Beigefügt ist der ursprüngliche Beispielcode für die Konfigurationskonstante 🎜>Der Code lautet wie folgt:

if (function_exists('apc_load_constants')) {
            function define_array($key, $arr, $case_sensitive = false) {
                if (!apc_load_constants($key, $case_sensitive)) {
                    apc_define_constants($key, $arr, $case_sensitive);
                }
            }
        } else {
            function define_array($key, $arr, $case_sensitive = false) {
                foreach ($arr as $name => $value) {
                    define($name, $value, $case_sensitive);
                }
            }
        }
        $constants = array(
            'HX'   => 1,
            'BLOG_URL'   => '//www.jb51.net/',
            'WWW_URL'   => '//www.jb51.net/',
        );
        define_array('hx_defined',$constants);


Anbei ist der Code zum Testen der definierten Geschwindigkeit

Der Code lautet wie folgt:

<?php
$t1 = microtime(1);
    $constants = array(
        &#39;hx1&#39;       => 1,
        &#39;hx2&#39;       => &#39;2&#39;,
        &#39;hx3&#39;       => &#39;3&#39;,
        &#39;hx4&#39;       => &#39;4&#39;,
        &#39;hx5&#39;       => &#39;5&#39;,
        &#39;hx6&#39;       => &#39;6&#39;,
        &#39;hx7&#39;       => &#39;7&#39;,
        &#39;hx8&#39;       => &#39;8&#39;,
        &#39;hx9&#39;       => &#39;9&#39;,
        &#39;hx10&#39;       => &#39;10&#39;,
    );
    function define_array($key, $arr) {
        foreach ($arr as $name => $value) {
            define($name.$i, $value);
        }
    }
    
    for($i=0;$i<100;$i++) {
        define_array($i,$constants);
    }
    
    
$t2 = microtime(1);
echo ($t2-$t1)*1000;
//读性能
$t1 = microtime(1);
for($i=0;$i<10000;$i++) {
    $t = hx1;
}    
$t2 = microtime(1);
echo &#39; &#39;.($t2-$t1)*1000;
$t1 = microtime(1);
for($i=0;$i<10000;$i++) {
    $t = HX;
}    
$t2 = microtime(1);
echo &#39; &#39;.($t2-$t1)*1000;


Zusammenfassung

: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er kann jedem beim Lernen helfen

Verwandte Empfehlungen:

PHP-Operationen zum Lesen, Bearbeiten und Speichern von Dateien

So verwenden Sie PHP in Kombination mit HTML5-WebSocket-Kommunikation

So implementieren Sie einen Webdienst in PHP


Das obige ist der detaillierte Inhalt vonPHP-Test-Hidef-Leistung. 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