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