Rendimiento

La biblioteca cliente para Perl facilita las interacciones con la API de Google Ads, con una configuración mínima de tu parte. Sin embargo, el rendimiento depende en gran medida de cómo se use y se integre la biblioteca.

La mayoría de estas prácticas recomendadas se aplican a todos los idiomas. En esta guía, se explican los que son específicos de Perl.

Crea un perfil de tu aplicación

Genera perfiles de tu aplicación para el uso de CPU y memoria para identificar los cuellos de botella en el rendimiento. Devel::NYTProf es un potente generador de perfiles de código fuente de Perl con muchas funciones que puedes explorar.

Versión de Perl

Es una buena práctica actualizar periódicamente a una versión más reciente de Perl, ya que suele tener un mejor rendimiento general. Consulta aquí para ver la versión más reciente de Perl y la versión mínima requerida para la biblioteca en esta página.

Logging

El registro extenso puede generar penalizaciones significativas en el tiempo de ejecución y el consumo de memoria. Recomendamos establecer el nivel de registro en WARN para cualquier código en producción.

Consulta la guía de registro para obtener más detalles sobre la configuración de los registradores de resumen y de detalles.

Método Search o SearchStream

La API de Google Ads proporciona dos métodos principales para recuperar objetos: Search (que usa paginación) y SearchStream (que usa transmisión). SearchStream proporciona un mejor rendimiento que el método Search, pero puede haber ciertas situaciones en las que se prefiera el método Search.

Puedes obtener más información sobre los dos métodos aquí.

Tiempo de espera de HTTP

La biblioteca cliente de Perl proporciona una superficie para configurar los tiempos de espera de HTTP a nivel del cliente:

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

El valor predeterminado se establece según el parámetro de configuración DEFAULT_HTTP_TIMEOUT en Constants.pm. Establece un valor más bajo si necesitas aplicar un límite más corto en el tiempo máximo para una llamada a la API.

Puedes establecer el tiempo de espera en 2 horas o más, pero es posible que la API aún agote el tiempo de espera de las solicitudes de ejecución extremadamente prolongada y muestre un error DEADLINE_EXCEEDED. Si te encuentras con ese error, divide la solicitud y ejecuta los fragmentos en paralelo. Esto evita la situación en la que falla una solicitud de larga duración y la única forma de recuperarse es volver a activar la solicitud desde el principio.