Heim  >  Artikel  >  Backend-Entwicklung  >  Kann PHP mit hoher Parallelität umgehen?

Kann PHP mit hoher Parallelität umgehen?

不言
不言Original
2018-07-19 16:20:179480Durchsuche

Wie geht PHP mit Problemen mit hoher Parallelität während der Ausführung um? Schauen wir uns als Nächstes eine Lösung für die Probleme mit hoher Parallelität von PHP genauer an.

Werfen wir zunächst einen Blick auf den Ausführungsprozess von PHP auf dem Server: Wenn der Benutzer die Server-PHP-Datei anfordert, führt der Server eine Syntaxanalyse für die PHP-Datei durch, gefolgt von Parsen und schließlich ausführen. Wenn die PHP-Datei über eine Inhaltsausgabe verfügt, durchläuft der Inhalt zunächst den PHP-Puffer des Servers und wird dann über TCP an den Client weitergeleitet. (Puffer ist eigentlich ein Puffer, ein Speicheradressraum, der hauptsächlich zum Speichern des Datenbereichs verwendet wird)

Es ist ersichtlich, dass sich die Antwortzeit des Servers ändert, wenn der Benutzer direkt auf die statische Seite zugreift im Allgemeinen länger dauern als der Zugriff auf die statische Seite. Dynamische Dateien sind von kurzer Dauer. Wenn wir die dynamischen Dateien, auf die Benutzer zugreifen möchten, zuerst in statische Dateien konvertieren können, können wir die Geschwindigkeit beschleunigen, mit der Benutzer auf die Seite zugreifen (die Geschwindigkeit, mit der sie die Webseite erhalten). Natürlich müssen wir auf die Anwendungsszenarien der Statik achten. Die Statik von Seiten wird hauptsächlich für Seiten verwendet, deren Seiteninhalt sich nicht häufig ändert.

In Bezug auf die Statik wird die Statik von PHP unterteilt in: rein statisch und pseudostatisch. Die reine Statik wird weiter unterteilt in: lokale reine Statik und totale reine Statik. Hier ist alles rein statisch.

Eine Möglichkeit, die Seite zu statischisieren, ist die Verwendung des Puffer-OB, der mit PHP geliefert wird:

Das Folgende ist eine einfache Implementierung der Seitenpufferung

<?php
//可以根据 前端传递参数 COOKIE等进行缓存
$id = $_GET[&#39;id&#39;];
//设置缓冲文件名
$cache_name = md5(__FILE__) . &#39;-&#39; . $id . &#39;.html&#39;;
//失效时间
$life = 3600;
//判断文件是否存在以及是否过期
if (file_exists($cache_name) && (filectime($cache_name) > time() - $life)) {
    include $cache_name;
    exit;
}
//开启缓冲区
ob_start();
echo date(&#39;Y-m-d H:i:s&#39;);
$content = ob_get_contents();
ob_end_clean();
//写入到缓冲文件
file_put_contents($cache_name, $content);
echo $content;

Zusätzlich zu den oben genannten Methoden können wir auch einige Puffermechanismen verwenden, die mit dem Framework geliefert werden, um

Verwandte Empfehlungen zu erreichen:

PHP löst das Problem von hohem Datenverkehr und hoher Parallelität der Website, und PHP löst das Problem der Verkehrsparallelität

PHP behandelt Probleme mit hoher Parallelität

Das obige ist der detaillierte Inhalt vonKann PHP mit hoher Parallelität umgehen?. 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