ไลบรารีของไคลเอ็นต์ PHP ช่วยให้การโต้ตอบกับ Google Ads API เป็นเรื่องง่ายด้วยการกำหนดค่าที่น้อยที่สุด อย่างไรก็ตาม ประสิทธิภาพจะขึ้นอยู่กับวิธีใช้และผสานรวมไลบรารีเป็นอย่างมาก
แนวทางปฏิบัติแนะนำทั่วไปส่วนใหญ่ใช้ได้กับทุกภาษา คู่มือนี้ครอบคลุมการเพิ่มประสิทธิภาพที่เฉพาะเจาะจงกับ PHP
การใช้งาน Protobuf และ gRPC
Protobuf ใช้โดย gRPC และ Google Ads API สำหรับ
ข้อความคำขอและการตอบกลับ มีการใช้งาน 2 แบบ (PHP ล้วนและการขยาย C) และการขยาย C สำหรับทั้ง protobuf และ grpc ให้ประสิทธิภาพการทำงานของเครือข่ายและการซีเรียลไลซ์ที่ดีขึ้นอย่างมาก
ดูข้อมูลเพิ่มเติมได้ที่คู่มือ Protobuf และคู่มือ การขนส่ง
โหมดการทำงานของตัวแปล PHP
PHP เป็นภาษาสคริปต์ที่หลากหลายและมีโหมด การทำงานหลายโหมดขึ้นอยู่กับการใช้งาน PHP-FPM (FastCGI Process Manager) หรือเซิร์ฟเวอร์แอปพลิเคชันแบบถาวรมีข้อได้เปรียบที่สำคัญเหนือ CGI มาตรฐาน เนื่องจากกระบวนการทำงานแบบถาวรสามารถนำไบต์โค้ดที่แคชไว้ (ผ่าน OPcache) และทรัพยากรกลับมาใช้ซ้ำในคำขอต่างๆ ได้
เวอร์ชัน PHP
อัปเกรดเป็นเวอร์ชัน PHP ใหม่กว่าเป็นประจำเพื่อรับประโยชน์จากการปรับปรุงประสิทธิภาพการทำงานรันไทม์ ดูรายการเวอร์ชัน PHP ที่รองรับ
เวอร์ชัน Google Ads API ที่ไม่ได้ใช้
ไลบรารีของไคลเอ็นต์ทุกเวอร์ชันรองรับ Google Ads API หลายเวอร์ชัน สำหรับ Google Ads API แต่ละเวอร์ชันที่ไลบรารีของไคลเอ็นต์รองรับ จะมีแพ็กเกจเฉพาะสำหรับเวอร์ชันนั้น
คุณสามารถนำแพ็กเกจที่สร้างขึ้นสำหรับ Google Ads API เวอร์ชันที่แอปพลิเคชันไม่ได้ใช้ออกจากไลบรารีของไคลเอ็นต์ได้อย่างปลอดภัย ไลบรารีของไคลเอ็นต์มีเครื่องมือเพื่อนำ Google Ads API เวอร์ชันที่ไม่ได้ใช้ออกโดยโปรแกรม เพื่อลดการใช้หน่วยความจำและเพิ่มความเร็วในการดำเนินการ
ตัวอย่าง
สมมติว่าคุณกำลังใช้งานแอปพลิเคชันไคลเอ็นต์ที่ใช้เฉพาะ API เวอร์ชันล่าสุด (v26) และต้องการนำการรองรับ API เวอร์ชันที่ไม่ได้ใช้ออก (v23, v24 และ v25)
google-ads-php
กำหนดสคริปต์ Composer (ชื่อ
remove-google-ads-api-version-support) ในไฟล์ composer.json ของโปรเจ็กต์ที่ใช้ประโยชน์จากเครื่องมือที่ไลบรารีของไคลเอ็นต์มีให้ใน 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 unused Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* \
-maxdepth 0 | grep -oE 'V[0-9]+$'
echo "# Vendor folder size:"
du -sh ./vendor
# Use the Composer script to remove the unused versions
# v23, v24, and
# v25 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- \
23 \
24 \
25
# Output the vendor folder size and the list of Google Ads API versions that are
# supported after removing support for unused Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* \
-maxdepth 0 | grep -oE 'V[0-9]+$'
echo "# Vendor folder size:"
du -sh ./vendor
เอาต์พุตการดำเนินการตัวอย่างต่อไปนี้แสดงการลดขนาดไฟล์ โดยมี V26 เป็นเวอร์ชันที่รองรับเวอร์ชันเดียวที่เหลืออยู่
# Supported Google Ads API versions:
V23
V24
V25
V26
# Vendor folder size:
135M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 23 of Google Ads API...
Done
Removing support for the version 24 of Google Ads API...
Done
Removing support for the version 25 of Google Ads API...
Done
# Supported Google Ads API versions:
V26
# Vendor folder size:
60M ./vendor
การพัฒนาเทียบกับการใช้งานจริง
PHP เป็นภาษาที่แปลโดยอินเทอร์พรีเตอร์ซึ่งจะคอมไพล์คำสั่งก่อนที่จะดำเนินการ ซึ่งเป็นประโยชน์ในระหว่างการพัฒนา เมื่อไฟล์ต้นฉบับมีการเปลี่ยนแปลงบ่อยครั้งและเวลาดำเนินการมีความสำคัญน้อยกว่า ในสภาพแวดล้อมการใช้งานจริง ความเสถียรและประสิทธิภาพการทำงานจะกลายเป็นข้อกังวลหลัก
แคช
เราขอแนะนำให้ใช้แคชเนื่องจากช่วยปรับปรุงประสิทธิภาพและเพิ่มความเสถียรด้วยการจัดเก็บไบต์โค้ดสคริปต์ที่คอมไพล์ไว้ล่วงหน้าในหน่วยความจำที่แชร์
OPcache เป็นโซลูชันมาตรฐานและรวมอยู่ใน PHP โดย ค่าเริ่มต้น
โหลดอัตโนมัติ
การโหลดอัตโนมัติช่วยปรับปรุงประสิทธิภาพและความเสถียรด้วยการโหลด ข้อมูลแผนที่คลาสที่คอมไพล์ไว้ล่วงหน้า
ไลบรารีของไคลเอ็นต์ PHP เป็นไปตาม PSR-4 สำหรับการโหลดอัตโนมัติและมี
คำจำกัดความเป็นส่วนหนึ่งของไฟล์ composer.json จากนั้นคุณจะใช้ตัวเลือก
Composer CLI เฉพาะ เช่น --optimize-autoloader หรือ
--classmap-authoritative ได้ทันทีในการสร้างเวอร์ชันที่ใช้งานจริง
การบันทึก
การตั้งค่าตัวบันทึกเป็นเกณฑ์ที่สูงขึ้น เช่น ERROR หรือ WARNING ในการใช้งานจริงจะช่วยลดค่าใช้จ่าย I/O และการใช้หน่วยความจำ
ดูข้อมูลเพิ่มเติมได้ที่คู่มือการบันทึก
การแก้ไขข้อบกพร่องและการสร้างโปรไฟล์
ปิดใช้ส่วนขยายดีบักเกอร์และโปรไฟล์เลอร์ (เช่น Xdebug) ในการใช้งานจริงเนื่องจากส่วนขยายเหล่านี้ทำให้เกิดค่าใช้จ่ายในการดำเนินการจำนวนมาก
โหลดล่วงหน้า
ตั้งแต่ PHP 7.4 เป็นต้นมา คุณสามารถใช้ การโหลดล่วงหน้าของ OPcache เพื่อโหลด สคริปต์ล่วงหน้าลงในหน่วยความจำเมื่อเซิร์ฟเวอร์เริ่มต้น ซึ่งเป็นขั้นตอนที่มากกว่าการแคช OPcache มาตรฐาน
คุณต้องออกแบบสคริปต์การโหลดล่วงหน้าสำหรับแอปพลิเคชันของคุณโดยเฉพาะ ไลบรารีของไคลเอ็นต์ PHP ไม่มีสคริปต์การโหลดล่วงหน้าทั่วไป เนื่องจากข้อแลกเปลี่ยนระหว่างการใช้งานหน่วยความจำและประสิทธิภาพที่เพิ่มขึ้นจะขึ้นอยู่กับโปรเจ็กต์และสภาพแวดล้อมการติดตั้งใช้งานแต่ละรายการ