ประสิทธิภาพ

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

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

การติดตั้งใช้งาน Protobuf

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

ดูข้อมูลเพิ่มเติมในคู่มือการสร้างภูมิคุ้มกันทางความคิด

โหมดการทำงานของอินเทอร์พรีเตอร์ PHP

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

เวอร์ชัน PHP

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

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

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

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

ตัวอย่าง

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

ในไฟล์ 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 v14 and v15 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 14 15

# 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 และเวอร์ชันที่รองรับเพียงเวอร์ชันเดียวที่เหลืออยู่คือ V16

# Supported Google Ads API versions:
V14
V15
V16
# Vendor folder size:
110M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 14 of Google Ads API...
Done
Removing support for the version 15 of Google Ads API...
Done
# Supported Google Ads API versions:
V16
# Vendor folder size:
60M     ./vendor

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

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

แคช

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

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

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

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

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

Logging

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

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

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

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

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

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

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