Biblioteka klienta dla Perla ułatwia interakcje z interfejsem Google Ads API przy minimalnej konfiguracji. Jednak wydajność zależy głównie od sposobu korzystania z biblioteki i jej integracji.
Większość tych sprawdzonych metod jest odpowiednia w przypadku wszystkich języków. W tym przewodniku omówiono te, które są specyficzne dla Perl.
Profilowanie aplikacji
Profiluj aplikację pod kątem wykorzystania procesora i pamięci, aby zidentyfikować wąskie gardła wydajności. Devel::NYTProf to potężny profilujący kod źródłowy Perlu z wiele możliwościami.
Wersja Perl
Warto regularnie aktualizować Perl do nowszej wersji, ponieważ zwykle zapewnia ona lepszą ogólną wydajność. Najnowszą wersję Perl oraz minimalną wymaganą wersję biblioteki znajdziesz tutaj. Ta strona zawiera też informacje o tej bibliotece.
Logowanie
Obszerne rejestrowanie może spowodować znaczne opóźnienia w wykonywaniu kodu i zwiększone zużycie pamięci. Zalecamy ustawienie poziomu rejestrowania na WARN
w przypadku kodu używanego w produkcji.
Więcej informacji o konfiguracji rejestratorów podsumowania 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 pobierania stron) i SearchStream
(która korzysta ze strumieniowego przesyłania danych).
Metoda SearchStream
zapewnia lepszą wydajność niż metoda Search
, ale w niektórych sytuacjach może być ona mniej odpowiednia.Search
Więcej informacji o tych dwóch metodach znajdziesz tutaj.
Przekroczenie limitu czasu HTTP
Biblioteka klienta Perl udostępnia interfejs do ustawiania 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 narzucić krótszy limit maksymalnego czasu wywołania interfejsu API.
Czas oczekiwania możesz ustawić na co najmniej 2 godziny, ale interfejs API może nadal przerywać bardzo długie żądania i zwracać błąd DEADLINE_EXCEEDED
.
Jeśli wystąpi taki błąd, podziel żądanie na części i wykonaj je równolegle. Dzięki temu unikniesz sytuacji, w której długotrwałe żądanie nie powiedzie się, a jedynym sposobem na przywrócenie jest ponowne wywołanie żądania od początku.