Sử dụng công cụ Tiến trình phân bổ để tìm các đối tượng không được thu gom rác đúng cách và tiếp tục giữ lại bộ nhớ.
Cách công cụ này hoạt động
Báo cáo Allocation timeline (Tiến trình phân bổ) kết hợp thông tin tổng quan chi tiết của trình phân tích bộ nhớ khối xếp với tính năng cập nhật và theo dõi gia tăng của Timeline panel (Bảng điều khiển tiến trình). Tương tự như các công cụ này, việc theo dõi quá trình phân bổ vùng nhớ khối xếp liên quan đến việc bắt đầu ghi, thực hiện một chuỗi thao tác, sau đó dừng ghi để phân tích.
Công cụ này chụp nhanh vùng nhớ khối xếp định kỳ trong suốt quá trình ghi (thường xuyên cứ 50 mili giây một lần!) và một ảnh chụp nhanh cuối cùng khi kết thúc quá trình ghi.
Ghi lại báo cáo Tiến trình phân bổ
Để bắt đầu sử dụng công cụ Tiến trình phân bổ, hãy làm theo các bước sau:
- Mở bảng điều khiển Memory (Bộ nhớ) trong Công cụ cho nhà phát triển.
- Bật hồ sơ Phân bổ theo dòng thời gian.
- Nhấn nút Start (Bắt đầu) để bắt đầu ghi.
Đọc hồ sơ phân bổ vùng nhớ khối xếp
Hồ sơ phân bổ vùng nhớ khối xếp cho biết vị trí các đối tượng đang được tạo và xác định đường dẫn giữ lại. Trong ảnh chụp nhanh sau, các thanh ở trên cùng cho biết thời điểm phát hiện đối tượng mới trong vùng nhớ khối xếp.
Chiều cao của mỗi thanh tương ứng với kích thước của các đối tượng được phân bổ gần đây và màu của các thanh cho biết liệu các đối tượng đó có còn hoạt động trong ảnh chụp nhanh vùng nhớ khối xếp cuối cùng hay không. Thanh màu xanh dương cho biết các đối tượng vẫn còn hoạt động ở cuối dòng thời gian, Thanh màu xám cho biết các đối tượng đã được phân bổ trong dòng thời gian nhưng đã được thu gom rác:
Bạn có thể phóng to để lọc ngăn Constructor (Hàm khởi tạo) để chỉ hiển thị các đối tượng được phân bổ trong khung thời gian đã chỉ định. Để phóng to, hãy kéo chuột qua khung thời gian mà bạn muốn tập trung vào trong dòng thời gian.
Khi nhấp vào một hàm khởi tạo cụ thể trong ngăn Constructor (Hàm khởi tạo), bạn sẽ thấy cây giữ lại của hàm khởi tạo đó trong ngăn Retainers (Phương thức giữ lại). Việc kiểm tra đường dẫn giữ lại đối tượng sẽ cung cấp cho bạn đủ thông tin để hiểu lý do đối tượng không được thu thập và bạn có thể thực hiện các thay đổi mã cần thiết để xoá tham chiếu không cần thiết.
Xem mức phân bổ bộ nhớ theo hàm
Bạn cũng có thể xem mức phân bổ bộ nhớ theo hàm JavaScript. Hãy xem phần Kiểm tra hoạt động phân bổ bộ nhớ theo hàm để biết thêm thông tin.