ประสิทธิภาพ

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

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

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

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

เวอร์ชัน Perl

อัปเกรดเป็น Perl เวอร์ชันใหม่กว่าเป็นประจำเพื่อรับประโยชน์จากการปรับปรุงประสิทธิภาพรันไทม์ ดาวน์โหลดเวอร์ชันล่าสุดจากแหล่งที่มาของ CPAN Perl releases และตรวจสอบเวอร์ชันขั้นต่ำที่จำเป็นสำหรับไลบรารีในข้อกำหนดของ 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 หากพบข้อผิดพลาดนี้ ให้แบ่งคำขอออกเป็นส่วนเล็กๆ แล้วเรียกใช้แบบ ขนาน ซึ่งจะช่วยหลีกเลี่ยงสถานการณ์ที่คำขอที่ใช้เวลานานล้มเหลว และ วิธีเดียวที่จะกู้คืนได้คือการทริกเกอร์คำขออีกครั้งตั้งแต่ต้น