Hiệu suất

Thư viện ứng dụng cho Perl giúp bạn dễ dàng tương tác với API Google Ads mà không cần phải định cấu hình nhiều. Tuy nhiên, hiệu suất phụ thuộc rất nhiều vào cách sử dụng và tích hợp thư viện.

Hầu hết các phương pháp hay nhất này đều áp dụng cho mọi ngôn ngữ. Hướng dẫn này sẽ trình bày các hàm chỉ dành riêng cho Perl.

Lập hồ sơ ứng dụng

Phân tích ứng dụng của bạn cả về mức sử dụng CPU và bộ nhớ để xác định các nút thắt cổ chai về hiệu suất. Devel::NYTProf là một trình phân tích tài nguyên mã nguồn Perl mạnh mẽ, có nhiều tính năng mà bạn có thể khám phá.

Phiên bản Perl

Bạn nên thường xuyên nâng cấp lên phiên bản Perl mới hơn vì phiên bản này thường có hiệu suất tổng thể tốt hơn. Hãy xem tại đây để biết phiên bản Perl mới nhất và phiên bản tối thiểu bắt buộc cho thư viện trong trang này.

Ghi nhật ký

Việc ghi nhật ký quá mức có thể gây ra các hình phạt đáng kể về thời gian thực thi và mức tiêu thụ bộ nhớ. Bạn nên đặt cấp độ ghi nhật ký thành WARN cho mọi mã trong phiên bản phát hành chính thức.

Hãy xem Hướng dẫn ghi nhật ký để biết thêm thông tin chi tiết về cấu hình của trình ghi nhật ký tóm tắt và chi tiết.

Phương thức Tìm kiếm hoặc SearchStream

API Google Ads cung cấp hai phương thức chính để truy xuất đối tượng – Search (sử dụng tính năng phân trang) và SearchStream (sử dụng tính năng truyền trực tuyến). SearchStream mang lại hiệu suất tốt hơn so với phương thức Search, nhưng có thể có một số trường hợp nhất định mà bạn nên sử dụng phương thức Search.

Bạn có thể tìm hiểu thêm về hai phương thức này tại đây.

Hết thời gian chờ HTTP

Thư viện ứng dụng Perl cung cấp một nền tảng để đặt thời gian chờ HTTP ở cấp ứng dụng:

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

Giá trị mặc định được đặt dựa trên chế độ cài đặt DEFAULT_HTTP_TIMEOUT trong Constants.pm. Đặt giá trị thấp hơn nếu bạn cần thực thi giới hạn ngắn hơn về thời gian tối đa cho một lệnh gọi API.

Bạn có thể đặt thời gian chờ thành 2 giờ trở lên, nhưng API vẫn có thể hết thời gian chờ đối với các yêu cầu chạy trong thời gian cực dài và trả về lỗi DEADLINE_EXCEEDED. Nếu bạn gặp lỗi đó, hãy chia yêu cầu và thực thi các phần song song; điều này giúp tránh trường hợp yêu cầu chạy trong thời gian dài không thành công và cách duy nhất để khôi phục là kích hoạt lại yêu cầu từ đầu.