Desempenho

A biblioteca de cliente para Perl facilita as interações com a API Google Ads, com configuração mínima da sua parte. No entanto, o desempenho depende muito de como a biblioteca é usada e integrada.

A maioria dessas práticas recomendadas se aplica a todos os idiomas. Este guia aborda os que são específicos do Perl.

Como criar o perfil do seu aplicativo

Crie um perfil do aplicativo para uso de CPU e memória e identifique gargalos de desempenho. O Devel::NYTProf é um criador de perfil de código-fonte Perl avançado e repleto de recursos que você pode conhecer.

Versão do Perl

É uma boa prática fazer upgrade regularmente para uma versão mais recente do Perl, já que ela geralmente vem com um desempenho geral melhor. Consulte aqui a versão mais recente do Perl e a versão mínima necessária para a biblioteca nesta página.

Logging

O registro extenso pode gerar penalidades significativas no tempo de execução e no consumo de memória. Recomendamos definir o nível de geração de registros como WARN para qualquer código em produção.

Consulte o guia de geração de registros para mais detalhes sobre a configuração de registradores de resumo e detalhes.

Método Search ou SearchStream

A API Google Ads oferece dois métodos principais para recuperar objetos: Search (que usa paginação) e SearchStream (que usa streaming). SearchStream oferece melhor desempenho do que o método Search, mas pode haver cenários em que o método Search é preferível.

Saiba mais sobre os dois métodos neste link.

Tempo limite HTTP

A biblioteca de cliente Perl oferece uma superfície para definir tempos limite HTTP no nível do cliente:

my $api_client = Google::Ads::GoogleAds::GoogleAdsClient->new({
  # Set HTTP timeout to 5 minutes.
  http_timeout   => 300
});

O valor padrão é definido com base na configuração DEFAULT_HTTP_TIMEOUT em Constants.pm. Defina um valor menor se você precisar aplicar um limite menor no tempo máximo de uma chamada de API.

É possível definir o tempo limite como duas horas ou mais, mas a API ainda pode atingir o tempo limite de solicitações de execução extremamente longa e retornar um erro DEADLINE_EXCEEDED. Se você encontrar esse erro, divida a solicitação e execute os blocos em paralelo. Isso evita a situação em que uma solicitação de longa duração falha e a única maneira de recuperar é acionar a solicitação novamente desde o início.