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 tego języka.
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 podziału na strony) i SearchStream
(która korzysta ze strumieniowego przesyłania danych).
Metoda SearchStream
zapewnia większą wydajność niż metoda Search
, ale w niektórych sytuacjach lepszym wyborem może być metoda 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 wykonuj je równolegle. Dzięki temu unikniesz sytuacji, w której długotrwałe wykonywanie żądania zakończy się niepowodzeniem, a jedynym sposobem na przywrócenie jest ponowne wywołanie żądania od początku.