ประสิทธิภาพ

ไลบรารีของไคลเอ็นต์สำหรับ Perl ช่วยให้การโต้ตอบกับ Google Ads API ง่ายขึ้นโดยคุณไม่ต้องกำหนดค่าอะไรมาก อย่างไรก็ตาม ประสิทธิภาพจะขึ้นอยู่กับวิธีใช้และผสานรวมไลบรารีเป็นอย่างมาก

แนวทางปฏิบัติแนะนำทั่วไปส่วนใหญ่ใช้ได้กับทุกภาษา หน้านี้ครอบคลุมคำแนะนำด้านประสิทธิภาพที่เฉพาะเจาะจงสำหรับ Perl

สร้างโปรไฟล์แอปพลิเคชัน

สร้างโปรไฟล์แอปพลิเคชันสำหรับการใช้งาน CPU และหน่วยความจำเพื่อระบุคอขวดด้านประสิทธิภาพ Devel::NYTProf เป็นโปรแกรมสร้างโปรไฟล์ซอร์สโค้ด Perl ที่มีฟีเจอร์มากมาย ซึ่งคุณสามารถใช้เพื่อวิเคราะห์เวลาในการดำเนินการได้

เวอร์ชัน Perl

อัปเกรดเป็นเวอร์ชัน Perl ใหม่กว่าเป็นประจำเพื่อรับประโยชน์จากการปรับปรุงประสิทธิภาพรันไทม์ ดาวน์โหลดเวอร์ชันล่าสุดจากการเผยแพร่ซอร์ส Perl ของ CPAN และตรวจสอบเวอร์ชันขั้นต่ำที่จำเป็นสำหรับไลบรารีใน ข้อกำหนดของ README

การบันทึก

การบันทึกอย่างละเอียดอาจทำให้เกิดค่าปรับเวลาในการดำเนินการและการใช้หน่วยความจำจำนวนมาก ตั้งค่าระดับการบันทึกเป็น WARN สำหรับโค้ดใดๆ ในเวอร์ชันจริง

ดูรายละเอียดเพิ่มเติมเกี่ยวกับการกำหนดค่า เครื่องมือบันทึกสรุปและรายละเอียดได้ที่คู่มือการบันทึก

SearchStream เทียบกับ Search

Google Ads API มี 2 วิธีหลักในการดึงข้อมูลออบเจ็กต์: Search (ซึ่งใช้การแบ่งหน้า) และ SearchStream (ซึ่งใช้การสตรีม) SearchStream มีประสิทธิภาพดีกว่า Search แม้ว่าจะมีบางสถานการณ์ ที่อาจต้องการใช้ Search มากกว่า

ดูการเปรียบเทียบโดยละเอียดของทั้ง 2 วิธีได้ที่คู่มือการสตรีม

การเพิ่มประสิทธิภาพเพย์โหลดและการจัดกลุ่ม

วิธีลดค่าใช้จ่ายเครือข่ายและการใช้หน่วยความจำ

  • ขอเฉพาะฟิลด์ที่แอปพลิเคชันของคุณต้องการในการค้นหา Google Ads Query Language (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 ชั่วโมง) ซึ่งตั้งค่าตามค่าคงที่ DEFAULT_HTTP_TIMEOUT ใน Constants.pm ตั้งค่าการหมดเวลาของไคลเอ็นต์ที่กำหนดเอง หากต้องการบังคับใช้ ขีดจำกัดที่สั้นกว่าสำหรับเวลาสูงสุดของการเรียก API

คุณสามารถตั้งค่าการหมดเวลาเป็น 2 ชั่วโมงขึ้นไปได้ แต่ API อาจยังคงหมดเวลาสำหรับคำขอที่ใช้เวลานานมากและแสดงข้อผิดพลาด DEADLINE_EXCEEDED หากพบข้อผิดพลาดนี้ ให้แบ่งคำขอออกเป็นส่วนเล็กๆ และดำเนินการแบบขนาน วิธีนี้จะช่วยหลีกเลี่ยงสถานการณ์ที่คำขอที่ใช้เวลานานล้มเหลวและวิธีเดียวที่จะกู้คืนได้คือการทริกเกอร์คำขออีกครั้งตั้งแต่เริ่มต้น