Wyniki

Biblioteka klienta PHP ułatwia interakcje z interfejsem Google Ads API, minimalizując konfigurację. Wydajność zależy jednak od sposobu używania i integracji biblioteki.

Większość tych sprawdzonych metod ma zastosowanie do wszystkich języków. W tym przewodniku znajdziesz podpowiedzi dotyczące języka PHP.

Implementacja Protobuf

Protokół Protobuf jest używany przez gRPC oraz interfejs Google Ads API do obsługi żądań i odpowiedzi. Dostępne są 2 implementacje, jednak ta napisana w języku C jest skuteczniejsza.

Więcej informacji znajdziesz w przewodniku po Protobuf.

Tryb działania interpretatora PHP

PHP to uniwersalny język skryptów, który ma wiele trybów działania w zależności od użycia. Jedną z zalet usługi PHP (Common Gateway Interface) jest możliwość udostępniania zasobów między uruchomieniami.

Wersja PHP

Zaleca się regularne uaktualnianie wersji PHP do nowszej wersji, ponieważ zwykle ma wyższą wydajność. Lista 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 do dyspozycji specjalne pakiety dla tej wersji.

Pakiety, które nie są używane w wersjach interfejsu API Google Ads, można bezpiecznie usunąć z biblioteki klienta. Biblioteka klienta pozwala na zautomatyzowanie tych operacji i przyspieszenie wykonania aplikacji lub jej zmniejszenie.

Przykład

Załóżmy, że wdrażasz bibliotekę klienta, która korzysta tylko z najnowszej wersji interfejsu API: v11 i chcesz wyłączyć obsługę nieużywanych wersji interfejsu API: v10 i v9.

W pliku composer.json projektu zdefiniuj skrypt Composer (o nazwie remove-google-ads-api-version-support) wykorzystujący narzędzie dostępne w bibliotece 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 niektóre 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 v9 and v10 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 9 10

# 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 pokazują, że rozmiar pliku jest mniejszy o 50 mln, a jedyna pozostała obsługiwana wersja to V11:

# Supported Google Ads API versions:
V9
V10
V11
# Vendor folder size:
110M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 9 of Google Ads API...
Done
Removing support for the version 10 of Google Ads API...
Done
# Supported Google Ads API versions:
V11
# Vendor folder size:
60M     ./vendor

Rozwój i produkcja

PHP to interpretowany język, ponieważ najpierw kompiluje instrukcje przed jego wykonaniem. Zwykle ma to zalety, bo w trakcie programowania źródła często się zmieniają, a czas wykonywania nie jest tak istotny. Jest jednak inaczej w czasie produkcji, gdy głównym problemem są stabilność i wydajność.

Cache (Pamięć podręczna)

Buforowanie jest powszechne i zdecydowanie zalecane, ponieważ pozwala zwiększyć wydajność oraz zwiększyć stabilność, przechowując gotowe skrypty.

Najczęściej używanym rozwiązaniem jest OPcache.

Automatyczne doładowanie

Autoładowanie jest powszechne, ponieważ poprawia zarówno wydajność, jak i stabilność, wczytując gotowe informacje o klasach.

Biblioteka klienta PHP jest zgodna z normą PSR-4 na potrzeby automatycznego doładowania i udostępnia definicję w pliku composer.json. Z pudełka można skorzystać ze specjalnych opcji narzędzia Composer, takich jak --optimize-autoloader lub --classmap-authoritative.

Logowanie

Ustawienie rejestratorów na wysokim poziomie, takim jak ERROR, może pomóc skrócić czas wykonywania i zmniejszyć wykorzystanie pamięci.

Więcej informacji znajdziesz w przewodniku rejestrowania.

Debugowanie & profilowanie

Zalecamy wyłączenie narzędzi do debugowania i narzędzia do profilowania, ponieważ zwykle wiąże się to z czasem wykonywania.

Wczytaj wstępnie

Od PHP 7.4 wstępnego ładowania OPcache można używać do wstępnego ładowania skryptów w pamięci, czyli o krok dalej niż w przypadku zwykłego buforowania.

Skrypt musi być zaprojektowany tak, aby korzystać z tej funkcji, ale biblioteka klienta PHP nie ma uniwersalnego sposobu wdrażania wstępnego wczytywania OPcache, a kompromis między ilością pamięci i wzrostem wydajności jest ściśle związany z danym projektem i wykonaniem.