Leistung

Die PHP-Clientbibliothek vereinfacht die Interaktionen mit der Google Ads API bei minimaler Konfiguration. Die Leistung hängt jedoch stark davon ab, verwendet und integriert ist.

Die meisten dieser Best Practices treffen auf in alle Sprachen. In diesem Leitfaden werden die für PHP spezifischen Funktionen behandelt.

Protobuf-Implementierung

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

Weitere Informationen finden Sie im Protobuf-Leitfaden.

Betriebsmodus des PHP-Interpreters

PHP ist eine vielseitige Scriptsprache und bietet je nach Verwendung viele Betriebsmodi. PHP CGI (Common Gateway Interface) hat einen bemerkenswerten Vorteil, da es Ressourcen zwischen Ausführungen freigeben kann.

PHP-Version

Es empfiehlt sich, regelmäßig auf eine neuere PHP-Version zu aktualisieren. zu einer besseren Gesamtleistung. 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 von der Clientbibliothek unterstützte Version der Google Ads API gibt es spezielle Pakete.

Die Pakete, die für nicht verwendete Google Ads API-Versionen vorgesehen sind, können sicher aus der Clientbibliothek entfernt. Da es hilfreich sein kann, die oder die Speicherauslastung reduzieren, bietet die Clientbibliothek Dienstprogramme, können Sie dies programmatisch tun.

Beispiel

Angenommen, Sie implementieren die Client-Bibliothek, API-Version v18 und Sie möchten die Unterstützung für die nicht verwendete API-Version entfernen API-Versionen: v17 und v16

Definieren Sie in der Datei composer.json des Projekts ein Composer-Skript (namens remove-google-ads-api-version-support), die das Dienstprogramm nutzt, in der Clientbibliothek in der Klasse ApiVersionSupport:

"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 v16 and v17 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 16 17

# 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 Ausgabe der Beispielausführung zeigt eine Dateigrößenreduzierung von 50 MB und die Die einzige verbleibende unterstützte Version ist V18:

# Supported Google Ads API versions:
V16
V17
V18
# Vendor folder size:
110M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 16 of Google Ads API...
Done
Removing support for the version 17 of Google Ads API...
Done
# Supported Google Ads API versions:
V18
# Vendor folder size:
60M     ./vendor

Entwicklung und Produktion

PHP ist eine interpretierte Sprache, bei der Anweisungen zuerst kompiliert und dann ausgeführt werden. Das ist in der Regel von Vorteil, da sich während der Entwicklungszeit die Quellen häufig ändern, während die Ausführungszeit nicht so entscheidend ist. Das Gegenteil gilt jedoch zur Produktionszeit, da sind Stabilität und Leistung die wichtigsten Punkte.

Cache

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

Am häufigsten wird OPcache verwendet. und ist standardmäßig verfügbar.

Automatisches Aufladen

Häufig verwendet das automatische Laden da es sowohl die Leistung verbessert als auch die Stabilität erhöht, wenn vorkompilierten Informationen über Klassen.

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 wie --optimize-autoloader oder --classmap-authoritative können dann direkt verwendet werden.

Logging

Wenn Sie Logging auf eine hohe Ebene wie ERROR festlegen, können Sie den Overhead bei der Ausführungszeit und den Arbeitsspeicherverbrauch reduzieren.

Weitere Informationen finden Sie im Leitfaden zum Logging.

Debugging und Profiling

Wir empfehlen, die normalerweise im Lieferumfang enthaltenen Debugger- und Profiler-Tools zu deaktivieren. einen gewissen Ausführungszeitaufwand.

Vorab laden

Seit PHP 7.4 OPcache Vorabladen kann verwendet werden, um Skripts vorab in den Arbeitsspeicher zu laden. Caching.

Ein Script muss so konzipiert sein, dass diese Funktion genutzt werden kann. Das ist bei der PHP-Clientbibliothek nicht der Fall, da es keine generische Möglichkeit zur Implementierung des OPcache-Preloads gibt. Außerdem ist der Kompromiss zwischen Speichernutzung und Leistungssteigerung sehr spezifisch für ein bestimmtes Projekt und eine bestimmte Ausführung.