Эффективность

Клиентская библиотека для Perl упрощает взаимодействие с Google Ads API и требует минимальной настройки. Однако эффективность в значительной степени зависит от того, как библиотека используется и интегрируется.

Большинство общих рекомендаций применимы ко всем языкам. На этой странице приведены рекомендации по повышению производительности, относящиеся к Perl.

Профилирование приложения

Профилируйте приложение на предмет использования ЦП и памяти, чтобы выявить узкие места в производительности. Devel::NYTProf – это многофункциональный профилировщик исходного кода Perl, который можно использовать для анализа времени выполнения.

Версия Perl

Регулярно переходите на более новые версии Perl, чтобы повысить производительность во время выполнения. Скачайте последнюю версию из выпусков исходного кода CPAN Perl и проверьте минимальную требуемую версию для библиотеки в требованиях README.

Журналы

Подробное ведение журнала может значительно увеличить время выполнения и потребление памяти. Для любого кода в рабочей среде задайте уровень ведения журнала WARN.

Подробнее о том, как настроить регистраторы сводных и подробных журналов, рассказывается в руководстве по ведению журналов.

SearchStream и Search

Google Ads API предлагает два основных метода получения объектов: Search (с использованием разбивки на страницы) и SearchStream (с использованием потоковой передачи). SearchStream обеспечивает более высокую производительность, чем Search, хотя в некоторых случаях предпочтительнее использовать Search.

Подробное сравнение этих двух методов приведено в руководстве по потоковой передаче.

Оптимизация полезной нагрузки и пакетная обработка

Чтобы снизить нагрузку на сеть и потребление памяти, выполните следующие действия:

  • В запросах на языке запросов Google Рекламы (GAQL) указывайте только те поля, которые нужны вашему приложению.
  • Объединяйте несколько операций mutate в один запрос 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.

Вы можете установить время ожидания, равное двум часам или более, но API все равно может прерывать выполнение слишком долгих запросов и возвращать ошибку DEADLINE_EXCEEDED. Если вы столкнулись с этой ошибкой, разделите запрос на несколько частей и выполните их параллельно. Это позволяет избежать ситуации, когда длительный запрос завершается ошибкой и единственный способ восстановить его – запустить запрос заново с самого начала.