ประสิทธิภาพ

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

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

การใช้งาน Protobuf

Protobuf ใช้โดย gRPC และ Google Ads API สำหรับข้อความคำขอและการตอบกลับ การติดตั้งใช้งานมี 2 แบบ แต่แบบที่เขียนด้วยภาษา C มีประสิทธิภาพดีกว่า

ดูข้อมูลเพิ่มเติมได้ที่คู่มือ Protobuf

โหมดการทำงานของตัวแปล PHP

PHP เป็นภาษา สคริปต์ที่ใช้งานได้หลากหลายและมีโหมด การทำงานมากมายตามการใช้งาน PHP CGI (Common Gateway Interface) มีข้อได้เปรียบที่สำคัญเนื่องจากสามารถแชร์ ทรัพยากรระหว่างการดำเนินการได้

เวอร์ชัน PHP

แนวทางปฏิบัติแนะนำคือการอัปเกรดเป็น PHP เวอร์ชันใหม่กว่าเป็นประจำ เนื่องจากโดยปกติแล้วจะ มาพร้อมกับประสิทธิภาพโดยรวมที่ดีกว่า รายการเวอร์ชัน PHP ที่รองรับ

Google Ads API เวอร์ชันที่ไม่ได้ใช้

ไลบรารีของไคลเอ็นต์ทุกเวอร์ชันรองรับ Google Ads API หลายเวอร์ชัน สำหรับ Google Ads API แต่ละเวอร์ชันที่ไลบรารีของไคลเอ็นต์รองรับ จะมีแพ็กเกจเฉพาะสำหรับเวอร์ชันนั้น

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

ตัวอย่าง

สมมติว่าคุณกำลังใช้ไลบรารีของไคลเอ็นต์ที่ใช้เฉพาะ API เวอร์ชันล่าสุด v24 และต้องการนำการรองรับ API เวอร์ชันที่ไม่ได้ใช้ v23 และ v22 ออก

ในไฟล์ composer.json ของโปรเจ็กต์ ให้กำหนดสคริปต์ Composer (ชื่อ remove-google-ads-api-version-support) ที่ใช้ประโยชน์จากยูทิลิตีที่จัดทำโดย ไลบรารีของไคลเอ็นต์ในคลาส ApiVersionSupport

"scripts": {
  "remove-google-ads-api-version-support": [
    "Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
  ]
}

จากนั้นใช้สคริปต์ Composer โดยใช้หมายเลขเวอร์ชันเป็นพารามิเตอร์และพิมพ์ ข้อความสถานะบางอย่าง

# Change the current directory to the project directory.
cd /path/to/the/project

# Install the project.
composer install

# Output the vendor folder size and the list of Google Ads API versions that are
# supported before removing support for Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor

# Use the Composer script to remove the unused versions v22 and v23 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 22 23

# Output the vendor folder size and the list of Google Ads API versions that are
# supported after removing support for Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor

เอาต์พุตการดำเนินการตัวอย่างด้านล่างแสดงให้เห็นว่าขนาดไฟล์ลดลง 50M และเวอร์ชันที่รองรับที่เหลืออยู่คือ V24

# Supported Google Ads API versions:
V22
V23
V24
# Vendor folder size:
110M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 22 of Google Ads API...
Done
Removing support for the version 23 of Google Ads API...
Done
# Supported Google Ads API versions:
V24
# Vendor folder size:
60M     ./vendor

การพัฒนาเทียบกับเวอร์ชันที่ใช้งานจริง

PHP เป็นภาษาที่ตีความ เนื่องจากจะคอมไพล์คำสั่งก่อนที่จะดำเนินการ โดยปกติแล้ววิธีนี้จะเป็นประโยชน์เนื่องจากในระหว่างการพัฒนา แหล่งข้อมูลมักจะเปลี่ยนแปลงในขณะที่เวลาในการดำเนินการไม่ได้มีความสำคัญมากนัก แต่ในเวลาที่ใช้งานจริง สิ่งที่ตรงกันข้ามจะเกิดขึ้นเนื่องจากความเสถียรและประสิทธิภาพกลายเป็นข้อกังวลหลัก

แคช

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

OPcache เป็นโซลูชันที่ใช้กันมากที่สุด และพร้อมใช้งานโดยค่าเริ่มต้น

โหลดอัตโนมัติ

การโหลดอัตโนมัติเป็นเรื่องปกติ เนื่องจากช่วยปรับปรุงประสิทธิภาพและเพิ่มความเสถียรด้วยการโหลด ข้อมูลที่คอมไพล์ล่วงหน้าเกี่ยวกับคลาส

ไลบรารีของไคลเอ็นต์ PHP เป็นไปตาม PSR-4 สำหรับ การโหลดอัตโนมัติและมีคำจำกัดความเป็นส่วนหนึ่งของ ไฟล์ composer.json จากนั้นคุณจะใช้ตัวเลือกเฉพาะของ Composer เช่น --optimize-autoloader หรือ --classmap-authoritative ได้ทันที

การบันทึก

การตั้งค่าเครื่องบันทึกเป็นระดับสูง เช่น ERROR จะช่วยลดเวลาในการดำเนินการ ค่าใช้จ่าย และการใช้หน่วยความจำได้

ดูข้อมูลเพิ่มเติมได้ที่คู่มือการบันทึก

การแก้ไขข้อบกพร่องและการสร้างโปรไฟล์

เราขอแนะนำให้ปิดใช้เครื่องมือแก้ไขข้อบกพร่องและเครื่องมือสร้างโปรไฟล์ เนื่องจากโดยปกติแล้วเครื่องมือเหล่านี้จะมาพร้อมกับ ค่าใช้จ่ายในการดำเนินการบางอย่าง

โหลดล่วงหน้า

ตั้งแต่ PHP 7.4 เป็นต้นมา คุณสามารถใช้การโหลดล่วงหน้าของ OPcache เพื่อโหลดสคริปต์ล่วงหน้าในหน่วยความจำ ซึ่งเป็นอีกขั้นที่เหนือกว่าการแคชปกติ

ต้องออกแบบสคริปต์เพื่อใช้ประโยชน์จากฟีเจอร์นี้ แต่ไลบรารีของไคลเอ็นต์ PHP ไม่ได้ออกแบบมาเช่นนั้นเนื่องจากไม่มีวิธีทั่วไปในการใช้การโหลดล่วงหน้าของ OPcache และการแลกเปลี่ยนระหว่างการใช้งานหน่วยความจำและประสิทธิภาพที่เพิ่มขึ้นนั้นขึ้นอยู่กับโปรเจ็กต์และการดำเนินการที่เฉพาะเจาะจง