ประสิทธิภาพ

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

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

การใช้งาน Protobuf

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

ดูข้อมูลเพิ่มเติมได้ในคู่มือโปรโตคอล

โหมดการทำงานของล่าม PHP

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

เวอร์ชัน PHP

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

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

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

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

ตัวอย่าง

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

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

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

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

# 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 v15 and v16 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 15 16

# 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

ตัวอย่างเอาต์พุตของการเรียกใช้ด้านล่างแสดงถึงขนาดไฟล์ที่ลดลง 50 MB และ เวอร์ชันที่สนับสนุนที่เหลือคือ V17 เท่านั้น:

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

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

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

แคช

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

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

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

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

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

การบันทึก

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

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

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

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

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

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

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