Cách sử dụng công cụ Dòng thời gian phân bổ

Meggin Kearney
Meggin Kearney

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.

Bản ghi ví dụ về tiến trình Phân bổ.

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:

  1. Mở bảng điều khiển Memory (Bộ nhớ) trong Công cụ cho nhà phát triển.
  2. Bật hồ sơ Phân bổ theo dòng thời gian.
  3. Nhấn nút Start (Bắt đầu) để bắt đầu ghi.

Tuỳ chọn "Ghi lại mức phân bổ trên dòng thời gian" được làm nổi bật.

Đọ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:

Ví dụ về bản ghi tiến trình phân bổ.

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.

Dòng thời gian được phóng to thành một thanh duy nhất.

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.