La libreria client per Perl semplifica le interazioni con l'API Google Ads, con una configurazione minima da parte tua. Tuttavia, il rendimento dipende in modo significativo da come viene utilizzata e integrata la libreria.
La maggior parte delle best practice generali sono applicabili a tutte le lingue. Questa pagina illustra le indicazioni sul rendimento specifiche per Perl.
Profila l'applicazione
Profila l'applicazione per l'utilizzo della CPU e la memoria utilizzata per identificare i colli di bottiglia delle prestazioni. Devel::NYTProf è un profiler di codice sorgente Perl ricco di funzionalità che puoi utilizzare per analizzare il tempo di esecuzione.
Versione di Perl
Esegui regolarmente l'upgrade a una versione più recente di Perl per usufruire dei miglioramenti del rendimento di runtime. Scarica l'ultima release dalle release del codice sorgente Perl CPAN, e controlla la versione minima richiesta per la libreria nei requisiti del file README.
Logging
Il logging esteso può comportare penalità significative in termini di tempo di esecuzione e consumo di memoria. Imposta il livello di logging su WARN per qualsiasi codice in produzione.
Per maggiori dettagli sulla configurazione dei logger di riepilogo e dettagli, consulta la guida Logging.
SearchStream e Search
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 a Search, anche se in alcuni scenari
potrebbe essere preferibile Search.
Per un confronto dettagliato dei due metodi, consulta la guida allo streaming.
Ottimizzazione e batching dei payload
Per ridurre al minimo l'overhead di rete e il consumo di memoria:
- Nelle query del linguaggio di query di Google Ads (GAQL), richiedi solo i campi specifici di cui ha bisogno la tua applicazione.
- Raggruppa più operazioni di modifica in un'unica richiesta
mutateanziché inviare singole richieste per ogni modifica.
Timeout HTTP
La libreria client Perl fornisce un'impostazione per la configurazione dei timeout HTTP a livello di client:
my $api_client = Google::Ads::GoogleAds::Client->new({
# Set HTTP timeout to 5 minutes (300 seconds).
http_timeout => 300,
});
Il valore predefinito è 3600 secondi (1 ora), impostato in base alla
DEFAULT_HTTP_TIMEOUT costante in Constants.pm.
Imposta un timeout client personalizzato se devi applicare un limite inferiore
al tempo massimo per una chiamata API.
Puoi impostare il timeout su 2 ore o più, ma l'API potrebbe comunque scadere per le richieste a esecuzione molto lunga e restituire un errore DEADLINE_EXCEEDED. Se riscontri questo errore, suddividi la richiesta in blocchi più piccoli ed eseguili in parallelo. In questo modo si evita la situazione in cui una richiesta a esecuzione lunga non va a buon fine e l'unico modo per recuperarla è attivare di nuovo la richiesta dall'inizio.