Leistung

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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

Die meisten dieser Best Practices gelten für alle Sprachen. In diesem Leitfaden werden die für PHP spezifischen beschrieben.

Protobuf-Implementierung

Protobuf wird von gRPC und der Google Ads API für Anfrage- und Antwortnachrichten verwendet. Es sind zwei Implementierungen verfügbar, obwohl die in C geschriebene Implementierung die bessere Leistung erzielt.

Weitere Informationen finden Sie im Protobuf-Leitfaden.

Betriebsmodus des PHP-Interpreters

PHP ist eine vielseitige Skriptsprache und bietet je nach Nutzung viele Betriebsarten. PHP CGI (Common Gateway Interface) bietet einen bedeutenden Vorteil, da es Ressourcen zwischen Ausführungen gemeinsam nutzen kann.

PHP-Version

Es empfiehlt sich, regelmäßig auf eine neuere PHP-Version zu aktualisieren, da diese normalerweise eine bessere Gesamtleistung bietet. 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 eigene Pakete.

Pakete, die nicht verwendeten Google Ads API-Versionen zugeordnet sind, können sicher aus der Clientbibliothek entfernt werden. Da es hilfreich sein kann, die Ausführung zu beschleunigen oder den Arbeitsspeicherbedarf zu verringern, bietet die Clientbibliothek Dienstprogramme, um dies programmatisch zu tun.

Beispiel

Angenommen, Sie implementieren die Clientbibliothek, in der nur die neueste API-Version verwendet wird: v13, und Sie möchten die Unterstützung für die nicht verwendeten API-Versionen v12 und v11 entfernen.

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

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

Verwenden Sie dann das Composer-Skript mit den Versionsnummern als Parameter und drucken Sie einige Statusmeldungen:

# 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 Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor

# Use the Composer script to remove the unused versions v11 and v12 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 11 12

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

Die folgende Ausgabe der Beispielausführung zeigt eine Dateigrößenreduzierung von 50 Millionen und die einzige verbleibende unterstützte Version ist V13:

# Supported Google Ads API versions:
V11
V12
V13
# Vendor folder size:
110M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 11 of Google Ads API...
Done
Removing support for the version 12 of Google Ads API...
Done
# Supported Google Ads API versions:
V13
# Vendor folder size:
60M     ./vendor

Entwicklung und Produktion

PHP ist insofern eine interpretierte Sprache, als vor der Ausführung zuerst Anleitungen kompiliert werden. Dies ist in der Regel vorteilhaft, da sich die Quellen während der Entwicklung häufig ändern, während die Ausführungszeit nicht so entscheidend ist. Das Gegenteil ist jedoch zum Zeitpunkt der Produktion der Fall, da Stabilität und Leistung die Hauptanliegen sind.

Cache

Caching ist üblich und wird dringend empfohlen, da es sowohl die Leistung verbessert als auch die Stabilität erhöht, da vorkompilierte Skriptanweisungen gespeichert werden.

OPcache ist die am häufigsten verwendete Lösung und ist standardmäßig verfügbar.

Automatisches Aufladen

Automatisches Aufladen ist üblich, weil damit sowohl die Leistung als auch die Stabilität verbessert wird. Dazu werden vorab kompilierte Informationen zu Klassen geladen.

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

Logging

Wenn Sie Logger auf eine höhere Ebene wie ERROR einstellen, können Sie den Zeitaufwand für die Ausführung und den Arbeitsspeicherverbrauch reduzieren.

Weitere Informationen finden Sie im Leitfaden zu Logging.

Fehlerbehebung und Profilerstellung

Wir empfehlen, die Debugger- und Profiler-Tools zu deaktivieren, da diese normalerweise mit einem gewissen Ausführungszeit verbunden sind.

Vorab laden

Seit PHP 7.4 können Skripts im Voraus geladen werden, um Skripts im Arbeitsspeicher vorab zu laden.

Ein Skript muss so konzipiert sein, dass es diese Funktion nutzt. Bei der PHP-Clientbibliothek ist dies nicht der Fall, da es keine allgemeine Möglichkeit zur Implementierung der OPcache-Vorabladung gibt. Der Kompromiss zwischen Arbeitsspeichernutzung und Leistungszuwachs hängt stark von einem bestimmten Projekt und einer bestimmten Ausführung ab.