0

Debugbar Bài 4: Quản lý Hiệu suất (Timeline), Lỗi (Exceptions) và Dữ liệu (Models, Session)

1. Tab "Timeline" (Đo lường thời gian thực thi)

Bạn có nhớ thông số 845ms ở góc phải màn hình trong ảnh của bạn không? Tab Timeline sẽ mổ xẻ chi tiết để bạn biết 845ms đó đã bị tiêu tốn vào những công đoạn nào. Tab này hiển thị dữ liệu dưới dạng một biểu đồ thanh ngang (như biểu đồ Gantt).

  • Công dụng chính: Phân tích nút thắt cổ chai về tốc độ. Bạn sẽ thấy Laravel mất bao nhiêu phần nghìn giây để khởi động ứng dụng (boot), bao nhiêu thời gian để chạy xong truy vấn SQL, và bao nhiêu thời gian để vẽ (render) giao diện.
  • Mẹo cho người dùng thực hành: Bạn có thể tự đo lường tốc độ một đoạn code bất kỳ của chính mình. Chỉ cần chèn Debugbar::startMeasure('ten_doan_code', 'Mô tả'); ở đầu đoạn code và Debugbar::stopMeasure('ten_doan_code'); ở cuối đoạn code. Vạch thời gian của đoạn code đó sẽ hiện ngay trên Tab Timeline.

2. Tab "Exceptions" (Quản lý ngoại lệ và lỗi)

Bình thường khi code bị lỗi nặng, Laravel sẽ văng ra một màn hình báo lỗi lớn (trang Ignition). Tuy nhiên, có những trường hợp lỗi diễn ra ngầm (ví dụ: khi chạy AJAX, API) hoặc khi bạn chủ động dùng khối try...catch để bắt lỗi thì màn hình sẽ không hiển thị gì cả.

  • Công dụng chính: Ghi nhận và lưu lại tất cả các lỗi (Exception) đã xảy ra trong quá trình xử lý trang web hiện tại. Nó sẽ chỉ đích danh tên lỗi, tin nhắn lỗi và dòng code gây ra lỗi, giúp bạn debug các luồng ngầm cực kỳ hiệu quả.

3. Tab "Models" (Kiểm soát Bộ nhớ RAM)

Nhìn vào thanh menu trong ảnh của bạn, tab này đang báo số 2 màu đỏ (Models 2). Điều này có nghĩa là để hiển thị trang web này, Laravel đã phải lấy dữ liệu và khởi tạo 2 đối tượng Eloquent Model trong bộ nhớ.

  • Công dụng chính: Phòng chống sập server do tràn RAM. Người mới thường hay mắc lỗi dùng lệnh User::all() trên một bảng chứa hàng chục ngàn dữ liệu. Nếu tab này báo đỏ với một con số khổng lồ (ví dụ Models 50000), server của bạn chắc chắn sẽ bị quá tải bộ nhớ. Nhờ có nó, bạn sẽ biết lúc nào bắt buộc phải dùng phân trang (paginate) hoặc giới hạn dữ liệu (limit).

4. Tab "Session" (Dữ liệu phiên làm việc)

Session là nơi Laravel lưu trữ dữ liệu tạm thời của từng người dùng trong quá trình họ duyệt web (ví dụ: thông tin user đang đăng nhập, giỏ hàng tạm, hoặc các dòng thông báo chớp nhoáng như "Cập nhật thành công").

  • Công dụng chính: Cho bạn thấy toàn cảnh "trong túi" của người dùng hiện tại đang lưu những dữ liệu gì. Rất hữu ích để kiểm tra xem tính năng đăng nhập hoặc lưu giỏ hàng của bạn đã hoạt động đúng logic hay chưa.

Như vậy là qua 4 bài viết, chúng ta đã đi qua toàn bộ các tính năng cốt lõi trên giao diện của Laravel Debugbar. Chỉ cần duy trì thói quen kiểm tra các Tab Queries, Models và Timeline, trình độ tối ưu code của bạn sẽ tăng lên đáng kể.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí