ประสิทธิภาพ

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

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

ทำโปรไฟล์แอปพลิเคชันของคุณ

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

เวอร์ชัน Perl

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