Wydajność

Biblioteka klienta w języku PHP ułatwia korzystanie z interfejsu Google Ads API, wymagając minimalnej konfiguracji z Twojej strony. Jej wydajność zależy jednak od sposobu wykorzystania i integracji biblioteki.

Większość tych sprawdzonych metod ma zastosowanie do wszystkich języków. W tym przewodniku omawiamy zagadnienia specyficzne dla języka PHP.

Implementacja protokołu Protobuf

Interfejs Protobuf jest używany przez gRPC i interfejs Google Ads API do obsługi żądań i wiadomości z odpowiedziami. Dostępne są 2 implementacje, jednak wersja napisana w języku C jest bardziej wydajna.

Więcej informacji znajdziesz w przewodniku po protokole Protobuf.

Tryb działania interpretera PHP

PHP to uniwersalny język skryptów, który ma wiele trybów działania w zależności od użycia. PHP CGI (Common Gateway Interface) ma sporą przewagę, ponieważ może udostępniać zasoby między wykonaniami.

Wersja PHP

Warto regularnie uaktualniać język PHP do nowszej wersji, ponieważ zwykle zapewnia ona lepszą ogólną skuteczność. Lista 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 są przeznaczone specjalne pakiety.

Pakiety przeznaczone dla nieużywanych wersji interfejsu Google Ads API można bezpiecznie usunąć z biblioteki klienta. Biblioteka klienta pozwala przyspieszyć wykonywanie kodu i zmniejszyć ilość pamięci, dlatego biblioteka klienta udostępnia narzędzia, które pozwalają to robić w sposób zautomatyzowany.

Przykład

Załóżmy, że implementujesz bibliotekę klienta, która korzysta tylko z najnowszej wersji interfejsu API: v16, i chcesz wyłączyć obsługę nieużywanych wersji interfejsu API: v15 i v14.

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 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 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 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 v14 and v15 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 14 15

# 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

Przykładowe dane wyjściowe wykonania poniżej wskazują, że rozmiar pliku został zmniejszony o 50 MB, a jedyna pozostała obsługiwana wersja to V16:

# Supported Google Ads API versions:
V14
V15
V16
# Vendor folder size:
110M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 14 of Google Ads API...
Done
Removing support for the version 15 of Google Ads API...
Done
# Supported Google Ads API versions:
V16
# Vendor folder size:
60M     ./vendor

Programowanie lub produkcja

Język PHP to interpretowany język, ponieważ najpierw kompilowa instrukcje przed ich wykonaniem. Jest to zwykle korzystne, ponieważ w trakcie tworzenia aplikacji źródła często się zmieniają, podczas gdy czas wykonywania nie ma większego znaczenia. W czasie produkcji jest jednak na odwrót, ponieważ stabilność i wydajność stają się głównymi problemami.

Cache (Pamięć podręczna)

Buforowanie jest powszechne i wysoce zalecane, ponieważ zwiększa wydajność i stabilność przez przechowywanie wstępnie skompilowanych instrukcji skryptu.

Najczęściej używanym rozwiązaniem jest OPcache. Jest ono dostępne domyślnie.

Automatyczne doładowanie

Automatyczne ładowanie jest często spotykane, ponieważ zwiększa wydajność i stabilność przez wczytywanie wstępnie skompilowanych informacji o klasach.

Biblioteka klienta PHP jest zgodna z normą PSR-4 w przypadku automatycznego wczytywania i udostępnia definicję jako część pliku composer.json. Od razu możesz używać specjalnych opcji Composer, takich jak --optimize-autoloader czy --classmap-authoritative.

Logowanie

Ustawienie rejestratorów na wysokim poziomie, np. ERROR, może pomóc skrócić czas wykonywania i zużycie pamięci.

Więcej informacji znajdziesz w przewodniku po logowaniu się na konto.

Debugowanie i profilowanie

Zalecamy wyłączenie debugera i programu profilującego, ponieważ zwykle wiąże się to z pewnym czasem wykonywania.

Wczytaj wstępnie

Od wersji PHP 7.4 do wstępnego wczytywania skryptów w pamięci można używać funkcji OPcache. To oznacza krok dalej niż w przypadku zwykłego buforowania.

Należy zaprojektować skrypt tak, aby korzystał z tej funkcji. Biblioteka klienta PHP tego nie umożliwia, ponieważ nie ma ogólnego sposobu implementacji wstępnego wczytywania OPcache. Kompromis między wykorzystaniem pamięci a wzrostem wydajności jest wyraźnie charakterystyczny dla danego projektu i wykonania.