0Pricing
PHP Academy · บทเรียน

การทำโปรไฟล์ PHP ด้วย Xdebug

เปิดใช้การทำโปรไฟล์ด้วย Xdebug และวิเคราะห์ผลลัพธ์ callgrind เพื่อค้นหาฟังก์ชันที่ทำงานช้า

การทำโปรไฟล์ PHP ด้วย Xdebug เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน

Xdebug คืออะไร

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

การติดตั้ง Xdebug

ติดตั้งผ่าน PECL หรือตัวจัดการแพ็กเกจ

# Via PECL:
$ pecl install xdebug
# Via apt:
$ apt install php-xdebug
# Verify:
$ php -v | grep Xdebug

การเปิดใช้เครื่องมือวิเคราะห์ประสิทธิภาพ

กำหนดค่า Xdebug ใน php.ini เพื่อเปิดใช้การวิเคราะห์ประสิทธิภาพ

# php.ini
[xdebug]
zend_extension=xdebug.so
xdebug.mode=profile
xdebug.output_dir=/tmp/xdebug
xdebug.profiler_output_name=cachegrind.out.%t

การวิเคราะห์ประสิทธิภาพตามตัวกระตุ้น

แทนที่จะวิเคราะห์ทุกคำขอ ให้ใช้ตัวกระตุ้นเพื่อเริ่มวิเคราะห์เมื่อต้องการ

# php.ini
xdebug.mode=profile
xdebug.start_with_request=trigger

# Trigger via query parameter or cookie:
curl "https://example.com/?XDEBUG_PROFILE=1"

ผลลัพธ์ของ Callgrind

Xdebug จะเขียนไฟล์ cachegrind.out.* รูปแบบนี้อ่านได้ด้วยเครื่องมือแสดงผลการวิเคราะห์ประสิทธิภาพ

การวิเคราะห์ด้วย KCachegrind / QCachegrind

เปิดไฟล์ callgrind ใน KCachegrind (Linux) หรือ QCachegrind (macOS/Windows) เพื่อดูจำนวนการเรียกฟังก์ชัน เวลารวม เวลาเฉพาะฟังก์ชัน และแผนผังการเรียก

การวิเคราะห์ด้วย WebGrind

WebGrind คือเครื่องมือดู callgrind บนเบราว์เซอร์ ซึ่งตั้งค่าได้ง่ายกว่าเครื่องมือบนเดสก์ท็อป

$ docker run -p 8080:80 jokkedk/webgrind -v /tmp/xdebug:/tmp

การอ่านผลลัพธ์จากเครื่องมือวิเคราะห์ประสิทธิภาพ

มองหาฟังก์ชันที่มี "ต้นทุนรวม" สูงที่สุด (เวลารวมที่รวมฟังก์ชันที่ถูกเรียกด้วย) เทียบกับ "ต้นทุนเฉพาะฟังก์ชัน" (เวลาในตัวฟังก์ชันเท่านั้น) ต้นทุนเฉพาะฟังก์ชันจะแสดงคอขวดที่แท้จริง

คอขวดที่พบบ่อย

สิ่งที่มักพบ ได้แก่ คำสั่งค้นหาฐานข้อมูลแบบ N+1 นิพจน์ทั่วไปที่ไม่มีประสิทธิภาพ การเรียกส่วนต่อประสานโปรแกรมประยุกต์ซ้ำซ้อน ความสัมพันธ์ Eloquent ที่ไม่ได้ปรับให้เหมาะสม และการแสดงผลมุมมองที่ใช้ทรัพยากรมาก

การวิเคราะห์ประสิทธิภาพเทียบกับการแก้จุดบกพร่อง

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

Blackfire เป็นทางเลือก

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

สรุป

เปิดโหมดวิเคราะห์ประสิทธิภาพของ Xdebug ใน php.ini เรียกใช้คำขอ แล้วเปิดไฟล์ callgrind ใน KCachegrind หรือ WebGrind มุ่งเน้นฟังก์ชันที่มีต้นทุนรวมและต้นทุนเฉพาะฟังก์ชันสูงที่สุดเพื่อค้นหาคอขวด

ตรวจสอบความเข้าใจอย่างรวดเร็ว

"ต้นทุนเฉพาะฟังก์ชัน" หมายถึงอะไรในรายงานการวิเคราะห์ประสิทธิภาพ

คำถามที่พบบ่อย

บทเรียน “การทำโปรไฟล์ PHP ด้วย Xdebug” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การทำโปรไฟล์ PHP ด้วย Xdebug” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การทำโปรไฟล์ PHP ด้วย Xdebug”

เปิดใช้การทำโปรไฟล์ด้วย Xdebug และวิเคราะห์ผลลัพธ์ callgrind เพื่อค้นหาฟังก์ชันที่ทำงานช้า คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การทำโปรไฟล์ PHP ด้วย Xdebug” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม

ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การทำโปรไฟล์ PHP ด้วย Xdebug
  2. OPcache: การแคชไบต์โค้ด
  3. การปรับปรุงประสิทธิภาพคำสืบค้นฐานข้อมูล
  4. การจัดการหน่วยความจำและเคล็ดลับด้านประสิทธิภาพ
← กลับไปที่ PHP Academy