2011-08-22 26 views
9

Trong Firefox (tôi đoán từ Firefox 4), chúng tôi có trang about:memory. Ngay cả khi tôi khá quen thuộc với quản lý bộ nhớ động C/C++, tôi phải thừa nhận rằng tôi không thực sự biết cách đọc trang đó.Cách đọc Firefox "about: memory" chính xác?

Tôi đã hy vọng about:memory sẽ cung cấp cho tôi, như nhà phát triển JavaScript/front-end, một cách tốt hơn để phát hiện/tìm rò rỉ bộ nhớ, được tạo bằng ECMAScript và/hoặc tập lệnh DOM. Tôi đang thử nghiệm trên hệ điều hành Windows 7 và Mac OS X Snow Leopard.

Vì vậy, tôi có một vài câu hỏi và hy vọng ai đó có thể trả lời những câu hỏi đó (xin đừng đoán nếu bạn không chắc chắn).

  • Windows 7 khác biệt giữa win32/privatebytesMemory in use.

Điều này thực sự làm phiền tôi. Nếu tôi đang thực hiện một số hoạt động ECMAScript/DOM nặng, giá trị cũ dường như tăng lên không có kết thúc, trong khi đó, độ tương phản Memory in use tiếp tục là "nhỏ". Giá trị nào thực sự thú vị ở đây? Có vẻ như win32 privatebytes có cùng giá trị mà bạn có thể thấy trong Trình quản lý tác vụ của mình.

  • Sự khác nhau giữa Memory mappedMemory in use là gì?

Tôi đang googling khá lâu trên trang này. Một số người nói nó cho biết số lượng bộ nhớ đang sử dụng bị phân mảnh. Điều đó có ý nghĩa gì? Đó có phải là chỉ báo trực tiếp về rò rỉ bộ nhớ không?

Tôi rất vui nếu ai đó có thể giải thích hầu hết các giá trị chỉ một chút (hoặc liên kết tài nguyên mà tôi không tìm thấy). Nhưng, điều thú vị nhất đối với tôi là khoảng cách lớn giữa các winby riêng của win32 và việc sử dụng bộ nhớ của trình duyệt. Max OS X dường như không tương đương với những giá trị đó, mà tôi đoán là do một hệ thống quản lý bộ nhớ cơ bản khác.

+1

Bạn nên cập nhật Firefox của mình. Các danh mục được đề cập không còn tồn tại trong Firefox 6, danh sách dễ hiểu hơn. –

+0

@Wladimir: thực sự. FF6 làm cho nó rõ ràng hơn nhiều. – jAndy

Trả lời

1

Bạn chỉ nên quan tâm đến bộ nhớ thực tế sử dụng bởi trình duyệt. Sẽ luôn có nhiều bộ nhớ được cấp phát ở cấp hệ điều hành, do sự phân mảnh bộ nhớ vv Nhưng đó thực sự là điều mà chỉ các nhà phát triển trình duyệt cần phải suy nghĩ. Nếu bạn thấy một hành vi bệnh lý có thể tái tạo được - hãy báo cáo lỗi Mozilla (cần có sổ kiểm tra thu nhỏ). Nhưng ngoài ra, bạn chỉ nên đảm bảo rằng mã của bạn không tích trữ các đối tượng không thể được phát hành (bộ nhớ được sử dụng bởi bộ nhớ được sử dụng).

Tôi không chắc chắn liệu "bộ nhớ ánh xạ" thậm chí có thể nhìn thấy trong phiên bản mới của about:memory, có thể dưới một tên mới. Tôi khá chắc chắn rằng bạn không nên quan tâm đến nó tuy nhiên. Đó là số lượng bộ nhớ có địa chỉ được gán cho nó, cái gì đó chỉ thú vị ở cấp hệ điều hành.

1

blog của mozilla này dường như để giải thích nó khá tốt, và nếu không, sau đó bạn đã có những chi tiết liên lạc của một người sẽ biết:

http://blog.mozilla.com/nnethercote/2011/05/23/a-better-aboutmemory-stage-1-75/

+0

cảm ơn tài nguyên tốt. Nhưng tôi đang bối rối về quan điểm được hiển thị ở đó, trông khá khác với FF5 ít nhất. Những phân bổ "ngầm định" và "rõ ràng" này khá đẹp, nhưng không hiển thị trong khung nhìn của tôi ở đây. – jAndy

+0

Ahh có, đó là một sự xấu hổ - xem có đặc biệt FF4, tôi vừa cập nhật cài đặt địa phương của tôi để FF5 và nó trông khác với điều đó quá. Việc nhấp vào liên kết 'Chi tiết' có giúp ích không? –

+0

Điều đó nói rằng, áp phích trên blog đã chỉ ra rằng chế độ xem mới này là sự kết hợp của hai cây trước đó, mặc dù anh ta tiếp tục thấy rằng bạn có thể bỏ lỡ một số cấp độ hệ điều hành, mặc dù toàn bộ đống được trình bày; Anh ta cũng sẽ bổ sung thêm một số phóng viên bộ nhớ cho các phân bổ cấp độ hệ điều hành quan trọng, điều này có thể là một số sử dụng cho bạn khi nó hoạt động. –

0

Trả lời câu hỏi chung chung trong tiêu đề của chủ đề, và không phải là câu hỏi cụ thể, mà dường như được giải quyết.

  • Hover đo bạn quan tâm Họ có tooltips với một số lời giải thích.
  • Nếu bạn quan tâm đến chi tiết, đôi khi nó chiếu sáng để đọc các cuộc thảo luận (trong bugzilla) sau biện pháp.
    Để tìm cuộc thảo luận, hãy tìm kiếm mã mozilla cho tên thước đo, ví dụ: http://mxr.mozilla.org/mozilla-central/search?string=heap-dirty, chọn liên kết 'Hg đổ lỗi', nhấp vào liên kết trước dòng có tên của biện pháp (trông giống như <user>@<revid>) và nhấp vào liên kết changeset (như changeset NNNNNN a6b3a22fbca7) rồi nhấp vào liên kết lỗi.
Các vấn đề liên quan