Wydajność

Biblioteka klienta do Perla 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ść tych sprawdzonych metod ma zastosowanie do wszystkich języków. W tym przewodniku znajdziesz informacje o tych, które są specyficzne dla Perla.

Profilowanie aplikacji

Profiluj aplikację pod kątem wykorzystania procesora i pamięci, aby zidentyfikować wąskie gardła wydajności. Devel::NYTProf to zaawansowany profiler kodu źródłowego Perl z wieloma funkcjami, który możesz wypróbować.

Wersja Perla

Zalecamy regularne aktualizowanie do nowszej wersji Perla, ponieważ zwykle zapewnia ona lepszą ogólną wydajność. Najnowszą wersję Perla znajdziesz tutaj, a minimalną wymaganą wersję biblioteki na tej stronie.

Logowanie

Rozbudowane rejestrowanie może znacznie wydłużyć czas wykonywania i zwiększyć zużycie pamięci. W przypadku kodu w środowisku produkcyjnym zalecamy ustawienie poziomu rejestrowania na WARN.

Więcej informacji o konfigurowaniu rejestratorów podsumowujących i szczegółowych znajdziesz w przewodniku po rejestrowaniu.

Metoda Search lub SearchStream

Interfejs Google Ads API udostępnia 2 główne metody pobierania obiektów: Search (która korzysta z paginacji) i SearchStream (która korzysta ze strumieniowania). SearchStream zapewnia lepszą wydajność niż metoda Search, ale w niektórych przypadkach metoda Search może być lepsza.

Więcej informacji o tych dwóch metodach znajdziesz tutaj.

Limit czasu HTTP

Biblioteka klienta Perl umożliwia ustawianie limitów czasu HTTP na poziomie klienta:

my $api_client = Google::Ads::GoogleAds::GoogleAdsClient->new({
  # Set HTTP timeout to 5 minutes.
  http_timeout   => 300
});

Wartość domyślna jest ustawiana na podstawie ustawienia DEFAULT_HTTP_TIMEOUT w pliku Constants.pm. Ustaw niższą wartość, jeśli chcesz wymusić krótszy limit maksymalnego czasu wywołania interfejsu API.

Możesz ustawić limit czasu na 2 godziny lub więcej, ale interfejs API może nadal przekraczać limit czasu w przypadku bardzo długotrwałych żądań i zwracać błąd DEADLINE_EXCEEDED. Jeśli wystąpi ten błąd, podziel żądanie i wykonaj części równolegle. Pozwoli to uniknąć sytuacji, w której długotrwałe żądanie zakończy się niepowodzeniem, a jedynym sposobem na odzyskanie danych będzie ponowne uruchomienie żądania od początku.