Symfony

Hiệu năng & Tối ưu hóa

Profiler, Blackfire, tối ưu query, lazy loading, eager loading, các chiến lược caching

22 câu hỏi phỏng vấn·
Senior
1

Mục đích chính của Symfony Profiler trong chu kỳ phát triển là gì?

Câu trả lời

Symfony Profiler là một công cụ gỡ lỗi thu thập thông tin chi tiết về mỗi HTTP request: thời gian thực thi, truy vấn SQL, mức sử dụng bộ nhớ, cache, events và nhiều hơn nữa. Nó giúp xác định các điểm nghẽn và phân tích hành vi của ứng dụng mà không cần sửa code. Khác với log truyền thống, nó cung cấp giao diện đồ họa tương tác có thể truy cập qua Web Debug Toolbar.

2

Blackfire khác Symfony Profiler như thế nào trong phân tích hiệu năng?

Câu trả lời

Blackfire là một profiler ứng dụng PHP thực hiện phân tích code chuyên sâu ở cấp độ từng hàm, với call graphs, so sánh profile và phát hiện regression. Khác với Symfony Profiler vốn cung cấp cái nhìn tổng quan theo từng request, Blackfire theo dõi toàn bộ quá trình thực thi code với các chỉ số CPU, bộ nhớ và I/O tại mỗi lần gọi hàm. Nó cũng cho phép so sánh hiệu năng giữa các phiên bản code khác nhau.

3

Sự khác biệt giữa lazy loading và eager loading trong Doctrine ORM là gì?

Câu trả lời

Lazy loading chỉ tải các quan hệ khi chúng thực sự được truy cập trong code, giúp giảm tải ban đầu nhưng có thể gây ra vấn đề N+1 với nhiều truy vấn bổ sung. Eager loading tải các quan hệ ngay lập tức cùng với truy vấn chính thông qua JOIN, tránh các truy vấn phụ nhưng có thể làm tăng lượng dữ liệu được truyền. Lựa chọn phụ thuộc vào cách dữ liệu sẽ được sử dụng.

4

Làm thế nào để xác định và giải quyết vấn đề N+1 queries với Doctrine?

5

Nên dùng chiến lược cache nào cho dữ liệu hiếm khi thay đổi nhưng được đọc thường xuyên?

+19 câu hỏi phỏng vấn

Nắm vững Symfony cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí