Biblioteka klienta PHP ułatwia interakcje z interfejsem Google Ads API przy minimalnej konfiguracji. Skuteczność 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 wskazówki dotyczące optymalizacji skuteczności w języku PHP.
Implementacje Protobuf i gRPC
Protobuf jest używany przez gRPC i interfejs Google Ads API do przesyłania
wiadomości z żądaniami i odpowiedziami. Dostępne są 2 implementacje (czysty PHP i rozszerzenie C), a rozszerzenia C zarówno dla protobuf, jak i grpc zapewniają znacznie lepszą serializację i wydajność sieci.
Więcej informacji znajdziesz w przewodniku Protobuf i przewodniku Transport.
Tryb działania interpretera PHP
PHP to wszechstronny język skryptowy, który w zależności od użycia ma kilka trybów działania. 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 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. Dla każdej wersji interfejsu Google Ads API obsługiwanej przez bibliotekę klienta dostępne są pakiety przeznaczone dla tej wersji.
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ć zużycie pamięci i przyspieszyć wykonywanie, biblioteka klienta udostępnia narzędzie do programowego usuwania nieużywanych wersji interfejsu API.
Przykład
Załóżmy, że implementujesz aplikację kliencką, która używa tylko najnowszej wersji interfejsu API (v26), i chcesz usunąć obsługę nieużywanych wersji interfejsu API (v23, v24 i v25).
W pliku composer.json projektu zdefiniuj skrypt 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 wyświetl 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
# 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
Poniższy przykładowy wynik wykonania pokazuje zmniejszenie rozmiaru pliku, a V26 jest jedyną pozostałą obsługiwaną wersją:
# 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
Tworzenie a produkcja
PHP to język interpretowany, który kompiluje instrukcje przed ich wykonaniem. Jest to korzystne podczas tworzenia, gdy pliki źródłowe często się zmieniają, a czas wykonania jest mniej krytyczny. W środowiskach produkcyjnych najważniejsze są stabilność i wydajność.
Cache (Pamięć podręczna)
Zalecamy korzystanie z pamięci podręcznej, ponieważ zwiększa ona wydajność i stabilność dzięki przechowywaniu wstępnie skompilowanego kodu bajtowego skryptu w pamięci współdzielonej.
OPcache to standardowe rozwiązanie, które jest domyślnie dołączone do PHP.
Automatyczne doładowanie
Automatyczne doładowanie zwiększa wydajność i stabilność dzięki wczytywaniu wstępnie skompilowanych informacji o mapie klas.
Biblioteka klienta PHP jest zgodna z PSR-4 w zakresie automatycznego doładowania i udostępnia
definicję w pliku composer.json. W przypadku kompilacji produkcyjnych można od razu używać dedykowanych
opcji interfejsu wiersza poleceń Composer, takich jak --optimize-autoloader czy
--classmap-authoritative.
Logowanie
Ustawienie rejestratorów na wyższy próg, np. ERROR lub WARNING, w środowisku produkcyjnym pomaga zmniejszyć obciążenie wejścia/wyjścia i zużycie pamięci.
Więcej informacji znajdziesz w przewodniku Logowanie.
Debugowanie i profilowanie
W środowisku produkcyjnym wyłącz rozszerzenia debuggera 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 wstępnie wczytywać skrypty do pamięci podczas uruchamiania serwera, co jest o krok dalej niż standardowe buforowanie OPcache.
Skrypt wstępnego wczytywania musi być zaprojektowany specjalnie dla Twojej aplikacji. Biblioteka klienta języka 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 wdrożenia.