Heim  >  Artikel  >  Backend-Entwicklung  >  Detailliertes Beispiel für die PHP-Leistungsoptimierung

Detailliertes Beispiel für die PHP-Leistungsoptimierung

黄舟
黄舟Original
2017-07-27 10:08:461261Durchsuche

PHP ist eine sehr beliebte Skriptsprache. Viele Unternehmen (Sina, Youku, Baidu, Sohu, Taobao usw.) verwenden diese Sprache für die Website-Entwicklung. Mit diesem Artikel hoffe ich einfach, die Leistung Ihrer PHP-Skripte zu verbessern. Bitte bedenken Sie, dass die Leistung Ihrer PHP-Skripte häufig von Ihrer PHP-Version, Ihrer Webserverumgebung und der Komplexität Ihres Codes abhängt.

Optimieren Sie Engpässe in Ihrem Code

Hoare sagte einmal: „Vorzeitige Optimierung ist die Wurzel allen Unglücks.“ Wenn Sie möchten, dass Ihre Website schneller läuft, sollten Sie eine Optimierung durchführen. Was müssen Sie tun, bevor Sie Ihren Code ändern? Was führt dazu, dass das System langsam ist? Sie können Ihr PHP mithilfe der folgenden Anleitung und anderer Methoden optimieren. Dies können Datenbank- oder Netzwerkgründe sein. Durch die Optimierung Ihres PHP-Codes können Sie versuchen, die Engpässe Ihres Systems zu finden.

Aktualisieren Sie Ihre PHP-Version

Ihre Teammitglieder haben darauf hingewiesen, dass die PHP-Engine im Laufe der Jahre viele symbolische Leistungsverbesserungen erfahren hat. Wenn auf Ihrem Webserver noch eine ältere Version ausgeführt wird, z. B. PHP3 oder PHP4. Bevor Sie also versuchen, Ihren Code zu optimieren, sollten Sie sich eingehend mit den Upgrades zwischen den Versionen befassen.

Klicken Sie auf den folgenden Link, um die spezifischen Details zu erfahren:

Port von PHP 4 auf PHP 5

Port von PHP 5.0.x auf PHP 5.1.x

Migration von PHP 5.1.x auf PHP 5.2.x

Caching verwenden

Caching-Module (wie Memcache) oder Vorlagensysteme (wie Smarty) für die Caching-Verarbeitung verwenden. Wir können die Website-Leistung verbessern, indem wir Datenbankergebnisse zwischenspeichern und Seitenergebnisse extrahieren.

Ausgabepuffer verwenden

Wenn Ihr Skript versucht zu rendern, verwendet PHP den Speicherpuffer, um alle Daten zu speichern. Caching kann dazu führen, dass Ihre Seite langsam erscheint, da der Puffer mit allen zu beantwortenden Daten gefüllt ist, bevor das Ergebnis an den Benutzer zurückgegeben wird. Glücklicherweise können Sie eine Änderung vornehmen, die PHP dazu zwingt, auf den Benutzer zu reagieren, bevor der Puffer voll ist, wodurch Ihre Website schneller aussieht.

  • Ausgabe-Cache-Steuerung

Vermeiden Sie das Schreiben naiver Setter und Getter

Wenn Sie PHP-Klassen schreiben, können Sie Objekteigenschaften manipulieren direkt, was Ihnen helfen kann, Zeit zu sparen und die Leistung Ihrer Skripte zu verbessern. Anstatt die Art von Setzern und Gettern, die den Leuten das Gefühl geben, kindisch und lächerlich zu sein.

Im Folgenden sind einige Fälle aufgeführt: Die Hundeklasse bedient das Namensattribut mithilfe von setName() und getName().

class dog {
  public $name = '';

  public function setName($name) {
    $this->name = $name;
  }

  public function getName() {
    return $this->name;
  }
}

Hinweis: setName() und getName() erledigen keine Arbeit außer dem Speichern und Zurückgeben des Namensattributs.

$rover = new dog();
$rover->setName('rover');
echo $rover->getName();

Das direkte Festlegen und Zugreifen auf das Namensattribut kann die Leistung um 100 % verbessern und die Entwicklungszeit verkürzen!

$rover = new dog();
$rover->name = 'rover';
echo $rover->name;

Es gibt keinen Grund, Variablen nicht zu kopieren.

Um den Code „sauberer“ zu machen, weisen Junior-Phierer manchmal eine bereits definierte Variable einer anderen Variablen zu. Dies führt effektiv zu einem doppelten Speicherverbrauch (beim Ändern von Variablen), wodurch die Leistung des Skripts abnimmt. Wenn ein Benutzer beispielsweise eine 512-KB-Variable in eine andere Variable einfügt, wird 1 MB Speicher verbraucht.

$description = strip_tags($_POST['description']);
echo $description;

Der obige Code kopiert die Variablen ohne Grund. Sie müssen Variablen einfach nur inline ausgeben, ohne zusätzlichen Speicher zu verbrauchen.

echo strip_tags($_POST['description']);

Vermeiden Sie Schleifen, um SQL-Operationen auszuführen

Ein häufiger Fehler besteht darin, eine SQL-Operation in einer Schleife zu platzieren, was zu häufigem Zugriff auf die Datenbank führt zu geringer Leistung des Skripts. Im folgenden Beispiel können Sie einen Schleifenvorgang auf eine einzelne SQL-Anweisung zurücksetzen.

foreach ($userList as $user) {
  $query = 'INSERT INTO users (first_name,last_name) VALUES("' . $user['first_name'] . '", "' . $user['last_name'] . '")';
  mysql_query($query);
}

Prozess:

INSERT INTO users (first_name,last_name) VALUES("John", "Doe")

Anstelle dieses Schleifenschemas können Sie die Daten in einen einzigen Datenbankvorgang zusammenfassen.

$userData = array();
foreach ($userList as $user) {
    $userData[] = '("' . $user['first_name'] . '", "' . $user['last_name'] . '")';
 }
$query = 'INSERT INTO users (first_name,last_name) VALUES' . implode(',', $userData);
mysql_query($query);

Prozess:

INSERT INTO users (first_name,last_name) VALUES("John", "Doe"),("Jane", "Doe")...
  • MySQL INSERT-Syntax

Andere Ressourcen

  • PHP Memcache-Modul

  • Smarty Template Engine

  • http://3v4l.org --- Analysieren Sie die Unterschiede zwischen verschiedenen Versionen Codeausführungseffizienz, sehr gute Website

  • Zusammenfassung

Es gibt noch viele Leistungsoptimierungen für PHP. Wenn dieser Aspekt zutrifft Wer ein tieferes Verständnis hat, kann es gemeinsam besprechen. Ich werde auch Ihre guten Vorschläge in den Blog-Beitrag aufnehmen, damit sie von anderen PHP-Mitarbeitern als Referenz dienen können. Ein PHP-Benutzer zu sein kann viele PHP-Benutzer verbessern

s Fähigkeit ist eine Frage des großen Stolzes.


Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel für die PHP-Leistungsoptimierung. 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