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