Biblioteka klienta PHP ułatwia interakcje z interfejsem Google Ads API przy minimalnej konfiguracji po Twojej stronie. Wydajność zależy jednak w dużej mierze od sposobu używania i integracji biblioteki.
Większość ogólnych sprawdzonych metod ma zastosowanie do wszystkich języków. Ten przewodnik zawiera informacje o optymalizacji wydajności w przypadku języka PHP.
Implementacje Protobuf i gRPC
Protobuf jest używany przez gRPC i interfejs Google Ads API do przesyłania komunikatów z żądaniami i odpowiedziami. Dostępne są 2 implementacje (czyste PHP i rozszerzenie C), a rozszerzenia C dla protobuf i grpc zapewniają znacznie lepszą serializację i wydajność sieci.
Więcej informacji znajdziesz w przewodniku po Protobuf i przewodniku po transporcie.
Tryb działania interpretera PHP
PHP to wszechstronny język skryptowy, który ma kilka trybów działania w zależności od zastosowania. PHP-FPM (FastCGI Process Manager) lub trwałe serwery aplikacji mają znaczną przewagę nad standardowym CGI, ponieważ trwałe procesy robocze mogą ponownie wykorzystywać buforowany kod bajtowy (za pomocą OPcache) i zasoby w różnych żądaniach.
Wersja PHP
Regularnie aktualizuj język PHP do nowszej wersji, aby korzystać z ulepszeń wydajności środowiska wykonawczego. Sprawdź listę obsługiwanych wersji PHP.
Nieużywane wersje interfejsu Google Ads API
Wszystkie wersje biblioteki klienta obsługują wiele wersji interfejsu Google Ads API. Każda wersja interfejsu Google Ads API obsługiwana przez bibliotekę klienta ma dedykowane pakiety.
Pakiety przeznaczone dla wersji interfejsu Google Ads API, które nie są używane przez Twoją aplikację, można bezpiecznie usunąć z biblioteki klienta. Aby zmniejszyć wykorzystanie pamięci i przyspieszyć wykonywanie, biblioteka klienta udostępnia narzędzie do programowego usuwania nieużywanych wersji interfejsu API.
Przykład
Załóżmy, że wdrażasz aplikację kliencką, która korzysta tylko z najnowszej wersji interfejsu API (v25), i chcesz usunąć obsługę nieużywanych wersji interfejsu API (v22, v23 i v24).
W pliku composer.json projektu zdefiniuj skrypt narzędzia Composer (o nazwie remove-google-ads-api-version-support), który korzysta z narzędzia udostępnianego przez bibliotekę klienta w ApiVersionSupport:
"scripts": {
"remove-google-ads-api-version-support": [
"Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
]
}
Następnie uruchom skrypt Composer z numerami wersji jako parametrami i wydrukuj komunikaty o stanie:
# 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
# v22, v23, and
# v24 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- \
22 \
23 \
24
# 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
Poniższy przykład pokazuje zmniejszenie rozmiaru pliku, przy czym jedyną pozostałą obsługiwaną wersją jest V25:
# Supported Google Ads API versions:
V22
V23
V24
V25
# Vendor folder size:
135M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 22 of Google Ads API...
Done
Removing support for the version 23 of Google Ads API...
Done
Removing support for the version 24 of Google Ads API...
Done
# Supported Google Ads API versions:
V25
# Vendor folder size:
60M ./vendor
Środowisko deweloperskie a produkcyjne
PHP to język interpretowany, który kompiluje instrukcje przed ich wykonaniem. Jest to korzystne podczas tworzenia aplikacji, gdy pliki źródłowe często się zmieniają, a czas wykonania ma mniejsze znaczenie. W środowiskach produkcyjnych najważniejsza jest stabilność i wydajność.
Cache (Pamięć podręczna)
Pamięć podręczna jest zalecana, ponieważ poprawia wydajność i zwiększa stabilność przez przechowywanie wstępnie skompilowanego kodu bajtowego skryptu w pamięci współdzielonej.
OPcache to standardowe rozwiązanie, które jest domyślnie dołączane do PHP.
Automatyczne doładowanie
Automatyczne wczytywanie zwiększa wydajność i stabilność, wczytując wstępnie skompilowane informacje o mapie klas.
Biblioteka klienta PHP jest zgodna ze standardem PSR-4 w zakresie automatycznego wczytywania i zawiera definicję w pliku composer.json. Dedykowane opcje interfejsu wiersza poleceń Composer, takie jak --optimize-autoloader lub --classmap-authoritative, można od razu wykorzystać w kompilacjach produkcyjnych.
Logowanie
Ustawienie rejestratorów na wyższy próg, np. ERROR lub WARNING w środowisku produkcyjnym, pomaga zmniejszyć obciążenie operacjami wejścia/wyjścia i zużycie pamięci.
Więcej informacji znajdziesz w przewodniku po rejestrowaniu.
Debugowanie i profilowanie
Wyłącz w środowisku produkcyjnym rozszerzenia debugera i profilera (np. Xdebug), ponieważ powodują one znaczne obciążenie wykonania.
Wczytaj wstępnie
Od wersji PHP 7.4 można używać wstępnego wczytywania OPcache, aby wczytywać skrypty do pamięci podczas uruchamiania serwera. Jest to bardziej zaawansowane rozwiązanie niż standardowe buforowanie OPcache.
Skrypt wstępnego wczytywania musi być zaprojektowany specjalnie pod kątem Twojej aplikacji. Biblioteka klienta PHP nie udostępnia ogólnego skryptu wstępnego wczytywania, ponieważ kompromis między wykorzystaniem pamięci a wzrostem wydajności jest specyficzny dla każdego projektu i środowiska wdrażania.