Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung der OPcache-Erweiterung in PHP

Detaillierte Erklärung der OPcache-Erweiterung in PHP

青灯夜游
青灯夜游nach vorne
2020-07-27 17:57:312903Durchsuche

Detaillierte Erklärung der OPcache-Erweiterung in PHP

OPcache verbessert die Leistung von PHP, indem es den vorkompilierten Bytecode von PHP-Skripten im gemeinsam genutzten Speicher speichert. Der Vorteil der Speicherung von vorkompiliertem Bytecode besteht darin, dass das Laden und der Aufwand für das Parsen von PHP entfallen Skripte. Versionen nach PHP 5.5 sind standardmäßig an diese Erweiterung gebunden. Frühere Versionen von PHP 5.2, 5.3 und 5.4 können die OPcache-Bibliothek in der » PECL-Erweiterung verwenden.

Erklärung des Konfigurationselements

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

Dieses Konfigurationselement wird im PHP-Handbuch empfohlen und in der Mitte von php.ini eingestellt Konfigurationselement Die Beschreibung lautet wie folgt:

  • opcache.memory_consumption: Die gemeinsam genutzte Speichergröße von OPcache in Megabyte.
  • opcache.interned_strings_buffer: Die Speichergröße, die zum Speichern reservierter Zeichenfolgen verwendet wird, in Megabyte. PHP-Versionen vor 5.3.0 ignorieren diese Konfigurationsanweisung.
  • opcache.max_accelerated_files: Die Obergrenze der Anzahl der Skriptdateien, die in der OPcache-Hash-Tabelle gespeichert werden können. Der reale Wert ist die erste Primzahl im Primzahlensatz {223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987}, die größer oder gleich dem eingestellten Wert ist. Der minimale Wertebereich des Einstellwerts beträgt 200, der maximale Wert beträgt 100000 vor PHP 5.5.6 und 1000000 nach PHP 5.5.6.
  • opcache.revalidate_freq: Überprüfen Sie, ob der Skript-Zeitstempel in Sekunden aktualisiert wurde. Die Einstellung 0 führt dazu, dass OPcache bei jeder Anfrage nach Skriptaktualisierungen sucht. Wenn die Konfigurationsanweisung opcache.validate_timestamps auf „disabled“ gesetzt ist, wird diese Einstellung ignoriert.
  • opcache.validate_timestamps: Wenn aktiviert, prüft OPcache alle opcache.revalidate_freq Sekunden, ob das Skript aktualisiert wird. Wenn diese Option deaktiviert ist, müssen Sie OPcache mithilfe der Funktionen opcache_reset() oder opcache_invalidate() manuell zurücksetzen oder den Webserver neu starten, damit die Dateisystemänderungen wirksam werden.
  • opcache.fast_shutdown: Wenn aktiviert, werden Fast-Stop-Resume-Ereignisse verwendet. Das sogenannte Quick-Stop-Resumption-Ereignis bezieht sich auf das Speicherverwaltungsmodul, das auf der Zend-Engine basiert, um den Speicher aller angeforderten Variablen auf einmal freizugeben, anstatt jeden zugewiesenen Speicherblock nacheinander freizugeben. Ab PHP 7.2.0 wurde diese Konfigurationsanweisung entfernt. Die Behandlung von Fast-Stop-Wiederaufnahmeereignissen wurde in PHP integriert, und PHP wird diese Wiederaufnahmeereignisse nach Möglichkeit automatisch verarbeiten.
    Weitere Beschreibungen der Konfigurationselemente finden Sie im OPcache-Handbuch.

OPcache-Funktion

OPcache bietet einige integrierte Funktionen zur Steuerung des Cache-Status von Bytecode. Voraussetzung für die Verwendung ist Folgendes Aktivieren Sie die OPcache-Erweiterung.

  • opcache_compile_file: Cache-PHP-Skript kompilieren, ohne es auszuführen. Wenn der Parameter FILE allein verwendet wird, ist er erforderlich ist ein Skript. Pfad, zum Beispiel: opcache_compile_file('index.php')
  • opcache_get_configuration
  • : Alle aktuellen Konfigurationsinformationen von opcache abrufen
  • opcache_get_status
  • : Ruft die aktuellen Cache-Informationen des Opcaches ab, einschließlich ob der gemeinsam genutzte Speicher voll ist usw.
  • opcache_invalidate
  • : Skript-Cache ungültig machen, es gibt zwei Parameter, script (Skriptpfadinformationen). Erforderlich, Force (boolean) ist optional. Wenn der Force-Parameter wahr ist, wird das Verwerfen des Caches erzwungen. Wenn er falsch ist oder nicht ausgefüllt wird, ist der Cache des Skripts nur dann ungültig, wenn die Änderungszeit des Skripts neuer ist als die entsprechende Bytecode-Zeit.
  • opcache_is_script_cached
  • : Überprüfen Sie, ob das Skript im OPCache zwischengespeichert ist. Der Parameter FILE (Dateipfad) ist erforderlich.
  • opcache_reset
  • : Alle Opcache-Caches neu laden , warten Sie, wenn Sie das nächste Mal eine Kompilierung durchführen

EntwicklungshinweiseIn der lokalen Entwicklungsumgebung wird empfohlen, die zu deaktivieren Durch die Erweiterung von OPcache kann der Cache dazu führen, dass das lokale Debuggen viele Probleme verursacht und die Entwicklungseffizienz verringert.

Wissenserweiterung über Shared Memory Shared Memory ist eine effiziente Möglichkeit, Daten zwischen Anwendungen auf demselben Computer auszutauschen. Die Ausführungseffizienz des Speichers für Programme ist höher als die der Festplatten-E/A, sodass eine sinnvolle Nutzung des Speichers die Effizienz von Programmen verbessern kann. Zu seinen Anwendungsszenarien gehören Webanfragen, Datenbankabfragen, Template-Engine-Caching und der im aktuellen Artikel erwähnte OPcache-Kompilierungscache für PHP.

Empfohlene verwandte Tutorials: „

PHP-Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der OPcache-Erweiterung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jianshu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen