Perl 客户端库可简化与 Google Ads API 的互动,您只需进行极少的配置。不过,性能在很大程度上取决于库的使用和集成方式。
大多数一般最佳实践适用于所有语言。本页面介绍了特定于 Perl 的性能指南。
分析应用性能
对应用的 CPU 和内存用量进行性能分析,以找出性能瓶颈。Devel::NYTProf 是一款功能丰富的 Perl 源代码性能分析器,可用于分析执行时间。
Perl 版本
定期升级到较新的 Perl 版本,以受益于运行时性能改进。从 CPAN Perl 源代码版本下载最新版本,并在自述文件要求中查看该库所需的最低版本。
日志记录
大量日志记录可能会导致执行时间显著增加并消耗大量内存。对于生产环境中的任何代码,请将日志记录级别设置为 WARN。
如需详细了解如何配置摘要和详细信息日志记录器,请参阅日志记录指南。
SearchStream 与 Search
Google Ads API 提供了两种主要方法来检索对象:Search(使用分页)和 SearchStream(使用流式传输)。SearchStream 的性能优于 Search,但在某些情况下,Search 可能是首选。
如需详细比较这两种方法,请参阅流式传输指南。
载荷优化和批处理
为了最大限度地减少网络开销和内存消耗,请执行以下操作:
- 在 Google Ads 查询语言 (GAQL) 查询中,仅请求应用所需的特定字段。
- 将多个更改操作分组到单个
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 小时),根据 Constants.pm 中的 DEFAULT_HTTP_TIMEOUT 常量设置。如果您需要对 API 调用的最长时间设置更短的限制,请设置自定义客户端超时。
您可以将超时设置为 2 小时或更长时间,但 API 仍可能会使运行时间极长的请求超时并返回 DEADLINE_EXCEEDED 错误。如果您遇到此错误,请将请求拆分为较小的块并并行执行。这样可以避免出现以下情况:长时间运行的请求失败,而唯一的恢复方法是从头开始再次触发请求。