Biblioteka klienta w Perlu 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ść ogólnych sprawdzonych metod ma zastosowanie do wszystkich języków. Ta strona zawiera wskazówki dotyczące wydajności w Perlu.
Profilowanie aplikacji
Profiluj aplikację pod kątem wykorzystania procesora i wykorzystania pamięci, aby zidentyfikować wąskie gardła wydajności. Devel::NYTProf to bogaty w funkcje profiler kodu źródłowego Perla, którego możesz używać do analizowania czasu wykonywania.
Wersja Perla
Regularnie aktualizuj Perla do nowszej wersji, aby korzystać z ulepszeń wydajności środowiska wykonawczego. Pobierz najnowszą wersję z CPAN Perl source releases i sprawdź minimalną wymaganą wersję biblioteki w pliku README.
Logowanie
Rozbudowane logowanie może powodować znaczne wydłużenie czasu wykonywania i zużycie pamięci. W przypadku kodu w środowisku produkcyjnym ustaw poziom logowania na WARN.
Więcej informacji o konfigurowaniu rejestratorów podsumowań i szczegółów znajdziesz w przewodniku Logowanie.
SearchStream a Search
Interfejs Google Ads API udostępnia 2 główne metody pobierania obiektów:
Search (która używa stronicowania) i
SearchStream (która używa przesyłania strumieniowego). SearchStream
zapewnia lepszą wydajność niż Search, chociaż w niektórych przypadkach
preferowana może być metoda Search.
Szczegółowe porównanie tych 2 metod znajdziesz w przewodniku Przesyłanie strumieniowe guide.
Optymalizacja i grupowanie ładunku
Aby zminimalizować obciążenie sieci i zużycie pamięci:
- W zapytaniach w języku zapytań Google Ads (GAQL) żądaj tylko tych pól, których potrzebuje Twoja aplikacja.
- Grupuj wiele operacji mutacji w jednym żądaniu
mutatezamiast wysyłać osobne żądania dla każdej zmiany.
Limit czasu HTTP
Biblioteka klienta w Perlu udostępnia ustawienie umożliwiające konfigurowanie limitów czasu HTTP na poziomie klienta:
my $api_client = Google::Ads::GoogleAds::Client->new({
# Set HTTP timeout to 5 minutes (300 seconds).
http_timeout => 300,
});
Wartość domyślna to 3600 sekund (1 godzina), ustawiona na podstawie stałej
DEFAULT_HTTP_TIMEOUT w pliku Constants.pm.
Jeśli chcesz wymusić krótszy
limit maksymalnego czasu wywołania interfejsu API,ustaw niestandardowy limit czasu klienta.
Możesz ustawić limit czasu na 2 godziny lub więcej, ale interfejs API może nadal przekroczyć limit czasu w przypadku bardzo długotrwałych żądań i zwrócić błąd DEADLINE_EXCEEDED. Jeśli wystąpi ten błąd, podziel żądanie na mniejsze części i wykonaj je równolegle. Pozwoli to uniknąć sytuacji, w której długotrwałe żądanie nie powiedzie się, a jedynym sposobem na odzyskanie danych jest ponowne uruchomienie żądania od początku.