La libreria client per Perl semplifica le interazioni con l'API Google Ads, con una configurazione minima da parte tua. Tuttavia, le prestazioni dipendono molto da come viene utilizzata e integrata la libreria.
La maggior parte di queste best practice è applicabile a tutte le lingue. Questa guida illustra quelle specifiche per Perl.
Profilazione dell'applicazione
Esegui il profiling dell'applicazione per l'utilizzo della CPU e della memoria per identificare i colli di bottiglia delle prestazioni. Devel::NYTProf è un potente profiler del codice sorgente Perl ricco di funzionalità che puoi esplorare.
Versione Perl
È buona norma eseguire regolarmente l'upgrade a una versione più recente di Perl, in quanto in genere offre prestazioni complessive migliori. Visita questa pagina per trovare la versione più recente di Perl e la versione minima richiesta per la libreria in questa pagina.
Logging
La registrazione estesa può comportare penalizzazioni significative del tempo di esecuzione e un consumo di memoria. Ti consigliamo di impostare il livello di logging su WARN
per qualsiasi codice in produzione.
Per maggiori dettagli sulla configurazione dei logger di riepilogo e dettagliati, consulta la guida al logging.
Metodo Search o SearchStream
L'API Google Ads fornisce due metodi principali per recuperare gli oggetti:
Search
(che utilizza la paginazione) e
SearchStream
(che utilizza lo streaming).
SearchStream
offre un rendimento migliore rispetto al metodo Search
, ma in alcuni scenari potrebbe essere preferito il metodo Search
.
Puoi scoprire di più sui due metodi qui.
Timeout HTTP
La libreria client Perl fornisce un'interfaccia per impostare i timeout HTTP a livello di client:
my $api_client = Google::Ads::GoogleAds::GoogleAdsClient->new({
# Set HTTP timeout to 5 minutes.
http_timeout => 300
});
Il valore predefinito viene impostato in base all'impostazione DEFAULT_HTTP_TIMEOUT
in
Constants.pm.
Imposta un valore inferiore se devi applicare un limite più breve al tempo massimo per una chiamata API.
Puoi impostare il timeout su almeno 2 ore, ma l'API potrebbe comunque scadere per le richieste estremamente lunghe e restituire un errore DEADLINE_EXCEEDED
.
Se si verifica questo errore, suddividi la richiesta ed esegui i chunk in parallelo. In questo modo, eviti la situazione in cui una richiesta di lunga esecuzione non va a buon fine e l'unico modo per recuperare è attivare di nuovo la richiesta dall'inizio.