Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in die PHP-Leistungsoptimierung

Detaillierte Einführung in die PHP-Leistungsoptimierung

黄舟
黄舟Original
2017-03-20 10:14:31963Durchsuche

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 durch die folgenden Anleitungen und andere Methoden optimieren, die datenbankbedingt oder netzwerkbedingt sein können. Durch die Optimierung Ihres PHP-Codes können Sie versuchen, die Engpässe Ihres Systems herauszufinden.

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.

Verwenden Sie Caching

Verwenden Sie ein Caching-Modul (z. B. Memcache) oder ein Vorlagensystem (z. B. Smarty) für die Caching-Verarbeitung. Wir können die Website-Leistung verbessern, indem wir Bibliotheksergebnisse Daten 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 Objekt Eigenschaften , die Ihnen helfen können, 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() tun nichts 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

Zusammenfassung

php in Es gibt noch viele Optimierungen in Bezug auf die Leistung. Wenn Sie ein tieferes Verständnis für diesen Aspekt haben, können Sie dies auch gemeinsam mit anderen PHP-Mitarbeitern besprechen. Als PHP-Benutzer bin ich sehr stolz darauf, die Fähigkeiten vieler PHP-Benutzer verbessern zu können

. ——Viele Leute betrachten PHP als eine Basissprache. Ich persönlich hoffe, dass die PHP-Sprache in Zukunft noch weiter gehen kann, damit das Geld in den Händen eines PHPers immer größer wird!

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in 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