Rendimento

La libreria client per Perl semplifica le interazioni con l'API Google Ads, con una configurazione minima da parte tua. Tuttavia, le prestazioni dipendono in modo significativo da come la libreria viene utilizzata e integrata.

La maggior parte delle best practice generali è applicabile a tutte le lingue. Questa pagina contiene 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 del codice sorgente Perl ricco di funzionalità che puoi utilizzare per analizzare il tempo di esecuzione.

Versione Perl

Esegui regolarmente l'upgrade a una versione più recente di Perl per usufruire dei miglioramenti delle prestazioni di runtime. Scarica l'ultima release dalle release dei sorgenti Perl CPAN e controlla la versione minima richiesta per la libreria nei requisiti del file README.

Logging

Un 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 di dettaglio, consulta la guida al logging.

SearchStream e Search a confronto

L'API Google Ads fornisce due metodi principali per recuperare gli oggetti: Search (che utilizza l'impaginazione) e SearchStream (che utilizza lo streaming). SearchStream offre prestazioni migliori rispetto a Search, anche se esistono alcuni scenari in cui Search potrebbe essere preferibile.

Per un confronto dettagliato dei due metodi, consulta la guida allo streaming.

Ottimizzazione e raggruppamento in batch del payload

Per ridurre al minimo l'overhead di rete e il consumo di memoria:

  • Richiedi solo i campi specifici di cui la tua applicazione ha bisogno nelle query Google Ads Query Language (GAQL).
  • Raggruppa più operazioni di modifica in un'unica richiesta mutate anziché inviare richieste singole per ogni modifica.

Timeout HTTP

La libreria client Perl fornisce un'impostazione per configurare i 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 costante DEFAULT_HTTP_TIMEOUT in Constants.pm. Imposta un timeout client personalizzato se devi applicare un limite più breve al tempo massimo per una chiamata API.

Puoi impostare il timeout su 2 ore o più, ma l'API potrebbe comunque andare in timeout per le richieste con tempi di esecuzione estremamente lunghi e restituire un errore DEADLINE_EXCEEDED. Se si verifica questo errore, suddividi la richiesta in blocchi più piccoli ed eseguili in parallelo. In questo modo si evita che una richiesta con un tempo di esecuzione lungo non vada a buon fine e che l'unico modo per recuperarla sia attivarla di nuovo dall'inizio.