Leistung

Die PHP-Clientbibliothek erleichtert die Interaktion mit der Google Ads API und erfordert nur minimale Konfiguration. Die Leistung hängt jedoch stark davon ab, wie die Bibliothek verwendet und eingebunden wird.

Die meisten allgemeinen Best Practices gelten für alle Sprachen. In diesem Leitfaden werden PHP-spezifische Leistungsoptimierungen beschrieben.

Protobuf- und gRPC-Implementierungen

Protobuf wird von gRPC und der Google Ads API für Anfrage- und Antwortnachrichten verwendet. Es sind zwei Implementierungen verfügbar (reines PHP und eine C-Erweiterung). Die C-Erweiterungen für protobuf und grpc bieten eine wesentlich bessere Serialisierungs- und Netzwerkleistung.

Weitere Informationen finden Sie im Protobuf-Leitfaden und im Transportleitfaden.

Betriebsmodus des PHP-Interpreters

PHP ist eine vielseitige Scriptsprache und hat je nach Verwendung mehrere Betriebsmodi. PHP-FPM (FastCGI Process Manager) oder persistente Anwendungsserver haben einen erheblichen Vorteil gegenüber Standard-CGI, da persistente Worker-Prozesse im Cache gespeicherten Bytecode (über OPcache) und Ressourcen über Anfragen hinweg wiederverwenden können.

PHP-Version

Führen Sie regelmäßig ein Upgrade auf eine neuere PHP-Version durch, um von Verbesserungen der Laufzeitleistung zu profitieren. Liste der unterstützten PHP-Versionen

Nicht verwendete Google Ads API-Versionen

Alle Versionen der Clientbibliothek unterstützen mehrere Google Ads API-Versionen. Für jede Version der Google Ads API, die von der Clientbibliothek unterstützt wird, gibt es spezielle Pakete.

Die Pakete für Versionen der Google Ads API, die nicht von Ihrer Anwendung verwendet werden, können problemlos aus der Clientbibliothek entfernt werden. Um den Speicherbedarf zu reduzieren und die Ausführung zu beschleunigen, bietet die Clientbibliothek ein Dienstprogramm, mit dem nicht verwendete API-Versionen programmatisch entfernt werden können.

Beispiel

Angenommen, Sie implementieren eine Clientanwendung, die nur die neueste API-Version (v26) verwendet, und möchten die Unterstützung für die nicht verwendeten API-Versionen (v23, v24 und v25) entfernen.

Definieren Sie in der Datei composer.json Ihres Projekts ein Composer-Skript (mit dem Namen remove-google-ads-api-version-support), das das von der Clientbibliothek in ApiVersionSupport bereitgestellte Dienstprogramm verwendet:

"scripts": {
  "remove-google-ads-api-version-support": [
    "Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
  ]
}

Führen Sie dann das Composer-Skript mit den Versionsnummern als Parameter aus und geben Sie Statusmeldungen aus:

# Change the current directory to the project directory.
cd /path/to/the/project

# Install the project.
composer install

# Output the vendor folder size and the list of Google Ads API versions that are
# supported before removing support for unused Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* \
  -maxdepth 0 | grep -oE 'V[0-9]+$'
echo "# Vendor folder size:"
du -sh ./vendor

# Use the Composer script to remove the unused versions
# v23, v24, and
# v25 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- \
  23 \
  24 \
  25

# Output the vendor folder size and the list of Google Ads API versions that are
# supported after removing support for unused Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* \
  -maxdepth 0 | grep -oE 'V[0-9]+$'
echo "# Vendor folder size:"
du -sh ./vendor

Die folgende Beispielausgabe zeigt die Reduzierung der Dateigröße, wobei V26 die einzige verbleibende unterstützte Version ist:

# Supported Google Ads API versions:
V23
V24
V25
V26
# Vendor folder size:
135M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 23 of Google Ads API...
Done
Removing support for the version 24 of Google Ads API...
Done
Removing support for the version 25 of Google Ads API...
Done
# Supported Google Ads API versions:
V26
# Vendor folder size:
60M     ./vendor

Entwicklung im Vergleich zur Produktion

PHP ist eine interpretierte Sprache, die Anweisungen vor der Ausführung kompiliert. Dies ist während der Entwicklung von Vorteil, wenn sich Quelldateien häufig ändern und die Ausführungszeit weniger kritisch ist. In Produktionsumgebungen stehen Stabilität und Leistung im Vordergrund.

Cache

Caching wird empfohlen, da es die Leistung verbessert und die Stabilität erhöht, indem vorkompilierter Skript-Bytecode im freigegebenen Speicher gespeichert wird.

OPcache ist die Standardlösung und standardmäßig in PHP enthalten.

Automatisches Aufladen

Autoloading verbessert die Leistung und Stabilität, indem vorkompilierte Klassenübersichtsinformationen geladen werden.

Die PHP-Clientbibliothek entspricht PSR-4 für das automatische Laden und stellt die Definition als Teil der Datei composer.json bereit. Spezielle Composer-CLI-Optionen wie --optimize-autoloader oder --classmap-authoritative können dann sofort in Produktions-Builds verwendet werden.

Logging

Wenn Sie Logger in der Produktion auf einen höheren Schwellenwert wie ERROR oder WARNING festlegen, können Sie den E/A-Overhead und den Arbeitsspeicherverbrauch reduzieren.

Weitere Informationen finden Sie im Logging-Leitfaden.

Debugging und Profilerstellung

Deaktivieren Sie Debugger- und Profiler-Erweiterungen (z. B. Xdebug) in der Produktion, da sie einen erheblichen Ausführungsaufwand verursachen.

Vorab laden

Seit PHP 7.4 kann das Vorabladen von OPcache verwendet werden, um Skripts beim Serverstart in den Arbeitsspeicher vorab zu laden. Dies geht einen Schritt weiter als das standardmäßige OPcache-Caching.

Ein Preload-Skript muss speziell für Ihre Anwendung entwickelt werden. Die PHP-Clientbibliothek bietet kein generisches Preload-Skript, da der Kompromiss zwischen Arbeitsspeichernutzung und Leistungssteigerung für jedes Projekt und jede Bereitstellungsumgebung spezifisch ist.