ไลบรารีของไคลเอ็นต์ PHP ช่วยให้การโต้ตอบกับ Google Ads API เป็นเรื่องง่ายขึ้นโดยมีการกำหนดค่าเพียงเล็กน้อยในส่วนของคุณ อย่างไรก็ตาม ประสิทธิภาพจะขึ้นอยู่กับวิธีใช้และผสานรวมไลบรารีเป็นอย่างมาก
แนวทางปฏิบัติแนะนำทั่วไปส่วนใหญ่ใช้ได้กับทุกภาษา คู่มือนี้ครอบคลุมการเพิ่มประสิทธิภาพที่เจาะจงสำหรับ PHP
การติดตั้งใช้งาน Protobuf และ gRPC
gRPC และ Google Ads API ใช้ Protobuf สำหรับข้อความคำขอและการตอบกลับ มีการใช้งาน 2 แบบ (PHP แบบเพียวและส่วนขยาย C) และส่วนขยาย C สำหรับทั้ง protobuf และ grpc ให้การจัดลำดับและประสิทธิภาพเครือข่ายที่ดีขึ้นอย่างมาก
ดูข้อมูลเพิ่มเติมได้ที่คู่มือ Protobuf และคู่มือการขนส่ง
โหมดการทำงานของ PHP Interpreter
PHP เป็นภาษาสคริปต์อเนกประสงค์และมีโหมดการทำงานหลายโหมดขึ้นอยู่กับการใช้งาน PHP-FPM (FastCGI Process Manager) หรือเซิร์ฟเวอร์แอปพลิเคชันแบบถาวรมีข้อได้เปรียบที่โดดเด่นเหนือ CGI มาตรฐาน เนื่องจากกระบวนการทำงานแบบถาวรสามารถใช้ไบต์โค้ดที่แคชไว้ (ผ่าน OPcache) และทรัพยากรซ้ำในคำขอต่างๆ ได้
เวอร์ชัน PHP
อัปเกรดเป็น PHP เวอร์ชันใหม่เป็นประจำเพื่อรับประโยชน์จากการปรับปรุงประสิทธิภาพรันไทม์ ดูรายการเวอร์ชัน PHP ที่รองรับ
เวอร์ชัน Google Ads API ที่ไม่ได้ใช้
ไลบรารีของไคลเอ็นต์ทุกเวอร์ชันรองรับ Google Ads API หลายเวอร์ชัน Google Ads API แต่ละเวอร์ชันที่ไลบรารีของไคลเอ็นต์รองรับจะมีแพ็กเกจเฉพาะสำหรับเวอร์ชันนั้น
คุณสามารถนำแพ็กเกจที่ใช้สำหรับ Google Ads API เวอร์ชันที่แอปพลิเคชันของคุณไม่ได้ใช้ออกจากไลบรารีของไคลเอ็นต์ได้อย่างปลอดภัย ไลบรารีของไคลเอ็นต์มียูทิลิตีสำหรับนำเวอร์ชัน API ที่ไม่ได้ใช้ออกแบบเป็นโปรแกรมเพื่อลดหน่วยความจำที่ใช้และเพิ่มความเร็วในการดำเนินการ
ตัวอย่าง
สมมติว่าคุณกำลังติดตั้งใช้งานแอปพลิเคชันไคลเอ็นต์ที่ใช้เฉพาะ API เวอร์ชันล่าสุด (v26) และต้องการนำการรองรับ API เวอร์ชันที่ไม่ได้ใช้ออก (v23, v24 และ v25)
ในไฟล์ 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 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 จากนั้นคุณจะใช้ตัวเลือก CLI ของ Composer โดยเฉพาะ เช่น --optimize-autoloader หรือ --classmap-authoritative ได้ทันทีในบิลด์เวอร์ชันที่ใช้งานจริง
การบันทึก
การตั้งค่าตัวบันทึกเป็นเกณฑ์ที่สูงขึ้น เช่น ERROR หรือ WARNING ในเวอร์ชันที่ใช้งานจริงจะช่วยลดค่าใช้จ่ายเพิ่มเติมของ I/O และการใช้หน่วยความจำ
ดูข้อมูลเพิ่มเติมได้ที่คู่มือการบันทึก
การแก้ไขข้อบกพร่องและการทำโปรไฟล์
ปิดใช้ส่วนขยายโปรแกรมแก้ไขข้อบกพร่องและเครื่องมือวิเคราะห์ประสิทธิภาพ (เช่น Xdebug) ในเวอร์ชันที่ใช้งานจริง เนื่องจากส่วนขยายเหล่านี้ทำให้เกิดค่าใช้จ่ายในการดำเนินการที่สูงมาก
โหลดล่วงหน้า
ตั้งแต่ PHP 7.4 เป็นต้นมา คุณสามารถใช้การโหลด OPcache ล่วงหน้าเพื่อโหลดสคริปต์ลงในหน่วยความจำล่วงหน้าเมื่อเริ่มต้นเซิร์ฟเวอร์ ซึ่งก้าวหน้ากว่าการแคช OPcache มาตรฐานไปอีกขั้น
สคริปต์การโหลดล่วงหน้าต้องออกแบบมาสำหรับแอปพลิเคชันของคุณโดยเฉพาะ ไลบรารีของไคลเอ็นต์ PHP ไม่มีสคริปต์การโหลดล่วงหน้าทั่วไป เนื่องจากข้อดีข้อเสียระหว่างการใช้งานหน่วยความจำและประสิทธิภาพที่เพิ่มขึ้นนั้นขึ้นอยู่กับแต่ละโปรเจ็กต์และสภาพแวดล้อมการติดตั้งใช้งาน