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 las prácticas recomendadas generales se aplican a todos los idiomas. En esta página, se incluye orientación sobre el rendimiento específica para Perl.

Genera un perfil de tu aplicación

Genera un perfil de tu aplicación para el uso de CPU y memoria con el objetivo de identificar cuellos de botella en el rendimiento. Devel::NYTProf es un generador de perfiles de código fuente de Perl con muchas funciones que puedes usar para analizar el tiempo de ejecución.

Versión de Perl

Actualiza con regularidad a una versión más reciente de Perl para beneficiarte de las mejoras de rendimiento del entorno de ejecución. Descarga la versión más reciente de las versiones de código fuente de CPAN Perl y verifica la versión mínima requerida para la biblioteca en los requisitos del archivo README.

Logging

El registro extenso puede generar penalizaciones significativas en el tiempo de ejecución y el consumo de memoria. Establece 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 cómo configurar los registradores de resumen y de detalles.

SearchStream frente a Search

La API de Google Ads proporciona dos métodos principales para recuperar objetos: Search (que usa la paginación) y SearchStream (que usa la transmisión). SearchStream proporciona un mejor rendimiento que Search, aunque hay ciertas situaciones en las que se podría preferir Search.

Para obtener una comparación detallada de los dos métodos, consulta la guía de transmisión.

Optimización y procesamiento por lotes de cargas útiles

Para minimizar la sobrecarga de red y el consumo de memoria, haz lo siguiente:

  • Solicita solo los campos específicos que tu aplicación necesita en tus consultas de lenguaje de consulta de Google Ads (GAQL).
  • Agrupa varias operaciones de mutación en una sola solicitud mutate en lugar de enviar solicitudes individuales para cada cambio.

Tiempo de espera de HTTP

La biblioteca cliente de Perl proporciona un parámetro para configurar los tiempos de espera de HTTP a nivel del cliente:

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

El valor predeterminado es 3600 segundos (1 hora), que se establece según la constante DEFAULT_HTTP_TIMEOUT en Constants.pm. Establece un tiempo de espera personalizado del cliente si necesitas aplicar un límite más corto al tiempo máximo de una llamada a la API.

Puedes establecer el tiempo de espera en 2 horas o más, pero la API puede agotar el tiempo de espera de las solicitudes de ejecución muy prolongada y devolver un error DEADLINE_EXCEEDED. Si encuentras este error, divide la solicitud en fragmentos más pequeños y ejecútalos 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.