Rendimiento

La biblioteca cliente de Perl facilita las interacciones con la API de Google Ads, con una configuración mínima de tu parte. Sin embargo, el rendimiento depende significativamente 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 perfiles de tu aplicación para el uso de CPU y memoria, y así identificar los cuellos de botella en el rendimiento. Devel::NYTProf es un generador de perfiles de código fuente de Perl enriquecido en funciones que puedes usar para analizar el tiempo de ejecución.

Versión de Perl

Actualiza periódicamente a una versión más reciente de Perl para aprovechar las mejoras en el rendimiento del tiempo de ejecución. Descarga la versión más reciente de las versiones de código fuente de Perl de CPAN y verifica la versión mínima requerida para la biblioteca en los requisitos de 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 la configuración de los registradores de resumen y de detalles.

Comparación entre SearchStream y Search

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 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 la carga útil

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

  • En tus consultas del lenguaje de consultas de Google Ads (GAQL), solicita solo los campos específicos que necesita tu aplicación.
  • 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 de configuración para establecer 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), establecido según la constante DEFAULT_HTTP_TIMEOUT en Constants.pm. Establece un tiempo de espera del cliente personalizado 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 este error, divide la solicitud en partes más pequeñas y ejecútalas 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.