Производительность

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

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

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

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

Перл-версия

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

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

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

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

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

API Google Рекламы предоставляет два основных метода получения объектов: 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 . Если вы столкнулись с этой ошибкой, разделите запрос и выполните фрагменты параллельно; это позволяет избежать ситуации, когда длительный запрос завершается сбоем, и единственный способ восстановления — снова запустить запрос с самого начала.