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.