Biblioteka klienta PHP ułatwia interakcje z interfejsem Google Ads API przy minimalnej konfiguracji. Wydajność zależy jednak w dużej mierze od sposobu używania i integracji biblioteki.
Większość tych sprawdzonych metod ma zastosowanie do wszystkich języków. Ten przewodnik zawiera informacje o metodach, które są specyficzne dla języka PHP.
Implementacja Protobuf
Protobuf jest używany przez gRPC i interfejs Google Ads API do obsługi komunikatów żądań i odpowiedzi. Dostępne są 2 implementacje, ale ta napisana w języku C ma lepszą wydajność.
Więcej informacji znajdziesz w przewodniku Protobuf.
Tryb działania interpretera PHP
PHP to wszechstronny język skryptowy, który w zależności od użycia ma wiele trybów działania. PHP CGI (Common Gateway Interface) ma znaczną przewagę, ponieważ może współdzielić zasoby między wykonaniami.
Wersja PHP
Regularne aktualizowanie do nowszej wersji PHP jest dobrym rozwiązaniem, ponieważ zwykle zapewnia lepszą ogólną wydajność. Lista obsługiwanych wersji PHP versions.
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, można bezpiecznie usunąć z biblioteki klienta. Biblioteka klienta udostępnia narzędzia do programowego przyspieszania wykonywania lub zmniejszania wykorzystania pamięci.
Przykład
Załóżmy, że implementujesz bibliotekę klienta, która używa tylko najnowszej wersji interfejsu API: v25, i chcesz usunąć obsługę nieużywanych wersji interfejsu API: v24 i v23.
W pliku composer.json projektu zdefiniuj skrypt Composer (o nazwie
remove-google-ads-api-version-support), który wykorzystuje narzędzie udostępniane przez
bibliotekę klienta w klasie
ApiVersionSupport:
"scripts": {
"remove-google-ads-api-version-support": [
"Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
]
}
Następnie użyj skryptu Composer z numerami wersji jako parametrami i wyświetl kilka komunikatów 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 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 v23 and v24 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 23 24
# 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
Poniższy przykładowy wynik wykonania wskazuje zmniejszenie rozmiaru pliku o 50 MB, a jedyną pozostałą obsługiwaną wersją jest V25:
# Supported Google Ads API versions:
V23
V24
V25
# Vendor folder size:
110M ./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
# Supported Google Ads API versions:
V25
# Vendor folder size:
60M ./vendor
Programowanie a produkcja
PHP to język interpretowany co oznacza, że najpierw kompiluje instrukcje, a potem je wykonuje. Jest to zwykle korzystne, ponieważ w trakcie programowania źródła często się zmieniają, a czas wykonania nie jest tak ważny. W przypadku produkcji jest jednak odwrotnie, ponieważ głównym problemem staje się stabilność i wydajność.
Cache (Pamięć podręczna)
Buforowanie jest powszechne i wysoce zalecane, ponieważ poprawia wydajność i zwiększa stabilność dzięki przechowywaniu wstępnie skompilowanych instrukcji skryptu.
OPcache to najczęściej używane rozwiązanie, które jest dostępne domyślnie.
Automatyczne doładowanie
Automatyczne doładowanie jest powszechne ponieważ poprawia wydajność i zwiększa stabilność dzięki wczytywaniu wstępnie skompilowanych informacji o klasach.
Biblioteka klienta PHP jest zgodna z PSR-4 w zakresie
automatycznego doładowania i udostępnia definicję w pliku
composer.json. Można wtedy od razu używać dedykowanych opcji Composer, takich jak
--optimize-autoloader czy --classmap-authoritative np.
Logowanie
Ustawienie rejestratorów na wysoki poziom, np. ERROR, może pomóc zmniejszyć obciążenie związane z czasem wykonania i zużyciem pamięci.
Więcej informacji znajdziesz w przewodniku logowania.
Debugowanie i profilowanie
Zalecamy wyłączenie narzędzi do debugowania i profilowania, ponieważ zwykle wiążą się one z pewnym obciążeniem związanym z czasem wykonania.
Wczytaj wstępnie
Od wersji PHP 7.4 można używać wstępnego wczytywania OPcache do wstępnego wczytywania skryptów do pamięci, co jest o krok dalej niż zwykłe buforowanie.
Skrypt musi być zaprojektowany tak, aby korzystać z tej funkcji, ale biblioteka klienta PHP nie jest, ponieważ nie ma ogólnego sposobu implementacji wstępnego wczytywania OPcache, a kompromis między wykorzystaniem pamięci a wzrostem wydajności jest bardzo specyficzny dla danego projektu i wykonania.