Клиентская библиотека для Perl упрощает взаимодействие с API Google Ads, требуя минимальной настройки с вашей стороны. Однако производительность в значительной степени зависит от того, как используется и интегрируется библиотека.
Большинство общих рекомендаций применимы ко всем языкам программирования. На этой странице представлены рекомендации по повышению производительности, специфичные для Perl.
Проанализируйте ваше приложение.
Проанализируйте использование ЦП и памяти вашего приложения, чтобы выявить узкие места в производительности. Devel::NYTProf — это многофункциональный профилировщик исходного кода Perl, который можно использовать для анализа времени выполнения.
Версия Perl
Регулярно обновляйте Perl до более новой версии, чтобы воспользоваться преимуществами повышения производительности во время выполнения. Загрузите последнюю версию из репозитория исходного кода Perl на CPAN и проверьте минимально необходимую версию библиотеки в разделе требований README .
Ведение журнала
Чрезмерное логирование может привести к значительным задержкам во времени выполнения и потреблению памяти. Установите уровень логирования WARN для всего кода в рабочей среде.
Дополнительные сведения о настройке сводных и подробных журналов см. в руководстве по ведению журналов .
SearchStream против Search
API Google Ads предоставляет два основных метода получения объектов: Search (использующий пагинацию) и SearchStream (использующий потоковую передачу). SearchStream обеспечивает лучшую производительность, чем Search , хотя в некоторых сценариях Search может быть предпочтительнее.
Подробное сравнение двух методов см. в руководстве по потоковой передаче .
Оптимизация полезной нагрузки и пакетная обработка
Для минимизации сетевых накладных расходов и потребления памяти:
- В запросах Google Ads Query Language (GAQL) запрашивайте только те поля, которые необходимы вашему приложению.
- Объедините несколько операций изменения в один запрос
mutate, вместо того чтобы отправлять отдельные запросы для каждого изменения.
Таймаут HTTP
Клиентская библиотека Perl предоставляет возможность настройки тайм-аутов HTTP на уровне клиента:
my $api_client = Google::Ads::GoogleAds::Client->new({
# Set HTTP timeout to 5 minutes (300 seconds).
http_timeout => 300,
});
Значение по умолчанию составляет 3600 секунд (1 час) и устанавливается на основе константы DEFAULT_HTTP_TIMEOUT в Constants.pm . Установите собственное значение тайм-аута клиента, если вам необходимо установить более короткий лимит на максимальное время для вызова API.
Вы можете установить тайм-аут на 2 часа или более, но API все равно может истечь по тайм-ауту для очень длительных запросов и вернуть ошибку DEADLINE_EXCEEDED . Если вы столкнетесь с этой ошибкой, разделите запрос на более мелкие части и выполняйте их параллельно. Это позволит избежать ситуации, когда длительный запрос завершается с ошибкой, и единственный способ восстановить его — это запустить запрос заново с самого начала.