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