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

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

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

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

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

Perl-версия

Рекомендуется регулярно обновлять Perl до новой версии, так как это обычно обеспечивает более высокую общую производительность. Актуальную версию Perl можно найти здесь , а минимальную требуемую версию библиотеки можно найти на этой странице .

Ведение журнала

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

Более подробную информацию о настройке сводных и подробных регистраторов см. в руководстве по ведению журнала .

Метод поиска или SearchStream

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

Более подробную информацию об этих двух методах можно узнать здесь .

HTTP-тайм-аут

Клиентская библиотека Perl предоставляет возможность настройки тайм-аутов HTTP на уровне клиента:

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

Значение по умолчанию устанавливается на основе параметра DEFAULT_HTTP_TIMEOUT в Constants.pm . Если вам нужно ограничить максимальное время вызова API, задайте меньшее значение .

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