Symfony

ประสิทธิภาพและการเพิ่มประสิทธิภาพ

Profiler, Blackfire, การเพิ่มประสิทธิภาพ query, lazy loading, eager loading, กลยุทธ์ caching

22 คำถามสัมภาษณ์·
Senior
1

วัตถุประสงค์หลักของ Symfony Profiler ในวงจรการพัฒนาคืออะไร?

คำตอบ

Symfony Profiler เป็นเครื่องมือดีบักที่รวบรวมข้อมูลโดยละเอียดเกี่ยวกับแต่ละ HTTP request เช่น เวลาที่ใช้ประมวลผล คำสั่ง SQL การใช้หน่วยความจำ cache events และอื่น ๆ มันช่วยระบุคอขวดและวิเคราะห์พฤติกรรมของแอปพลิเคชันโดยไม่ต้องแก้ไขโค้ด ต่างจาก log แบบดั้งเดิม มันมีอินเทอร์เฟซกราฟิกแบบโต้ตอบที่เข้าถึงได้ผ่าน Web Debug Toolbar

2

Blackfire แตกต่างจาก Symfony Profiler อย่างไรในการวิเคราะห์ประสิทธิภาพ?

คำตอบ

Blackfire เป็น profiler สำหรับแอปพลิเคชัน PHP ที่วิเคราะห์โค้ดเชิงลึกในระดับฟังก์ชันต่อฟังก์ชัน พร้อม call graphs การเปรียบเทียบโปรไฟล์ และการตรวจจับ regression ต่างจาก Symfony Profiler ที่ให้ภาพรวมต่อ request โดย Blackfire จะติดตามการทำงานของโค้ดทั้งหมดพร้อมเมตริก CPU หน่วยความจำ และ I/O ในทุกการเรียกฟังก์ชัน อีกทั้งยังช่วยให้เปรียบเทียบประสิทธิภาพระหว่างเวอร์ชันโค้ดต่าง ๆ ได้

3

ความแตกต่างระหว่าง lazy loading และ eager loading ใน Doctrine ORM คืออะไร?

คำตอบ

lazy loading จะโหลดความสัมพันธ์เฉพาะเมื่อมีการเข้าถึงจริงในโค้ด ซึ่งช่วยลดภาระเริ่มต้นแต่อาจก่อให้เกิดปัญหา N+1 ด้วยคำสั่งเพิ่มเติมจำนวนมาก ส่วน eager loading จะโหลดความสัมพันธ์ทันทีพร้อมกับ query หลักผ่าน JOIN ช่วยหลีกเลี่ยง query เพิ่มเติมแต่ก็อาจเพิ่มปริมาณข้อมูลที่ถ่ายโอน การเลือกขึ้นอยู่กับว่าจะใช้ข้อมูลอย่างไร

4

จะระบุและแก้ปัญหา N+1 queries ด้วย Doctrine ได้อย่างไร?

5

ควรใช้กลยุทธ์การแคชแบบใดสำหรับข้อมูลที่ไม่ค่อยเปลี่ยนแปลงแต่ถูกอ่านบ่อย?

+19 คำถามสัมภาษณ์

หัวข้อสัมภาษณ์ Symfony อื่นๆ

เชี่ยวชาญ Symfony สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี