2016-11-03 14 views
11

Tôi biết rằng có 2-3 chủ đề về vấn đề này, đã xảy ra sự cố với FinalizerReference nhưng vẫn chưa được giải thích rõ. Tôi có một câu hỏi về lớp học này và cách thức hoạt động của nó.Android FinalizerReference sử dụng 7mb RAM

Không có vấn đề gì tôi làm trong ứng dụng của tôi, luôn luôn giữ FinalizerReference 5-10 RAM cho chính nó, và câu hỏi của tôi là:

đây là một hành vi bình thường mà tôi không phải lo lắng về?

Như tôi biết, đối tượng Java được giải phóng, nhưng 'con trỏ' ở lại trong bộ nhớ và chúng được làm sạch với GC tiếp theo (cũng như đối tượng bình thường được làm sạch bằng GC, không có tham chiếu đến nó).

Đối với tôi, đây là một chút sai, bởi vì nếu tôi có ~ 64 MB RAM để sử dụng với ứng dụng của tôi và 10MB bị lãng phí - phải có một vấn đề.

Tôi đã kiểm tra tất cả, xóa tất cả các rò rỉ mà tôi có và hiện tại ứng dụng của tôi chỉ ở mức 18 ~ mb RAM (7 RAM - đồ họa, 2 RAM - Đối tượng). Phần còn lại - FinalizerReference;/

Dưới đây là một ảnh chụp màn hình từ AppHeap: enter image description here

đây là một màn hình từ đó là trường hợp:

enter image description here

và đây là màn hình bộ nhớ của tôi (nó sẽ nằm trong dạng này trong 30 phút):

enter image description here

Ngoài ra, trong bảng điều khiển 'Trường hợp', có 50 mục nhập bao gồm ~ 5 từ mã và thư viện của tôi mà tôi sử dụng. Phần còn lại là từ Android - InputManagers, Bưu kiện, Proxy, vv

Sửa

Điều này xảy ra trên Galaxy S5. Trên Android Emulator tôi nhận được ~ 2MB từ FinalizerReference

Trả lời

1

tôi đã không giải quyết được vấn đề, nhưng có một lời khuyên rằng tôi nên kiểm tra trên một dự án có sản phẩm nào.

thử với:

  • Android Studio của Windows x32
  • Android Studio Windows x64
  • IntelliJIDEA x32
  • IntelliJIDEA x64

Tất cả những gây ra FinalizerReference để giữ 5-10 mb của RAM cho chính nó, trên proj trống rỗng và không trống ect.

Chỉ cần bỏ qua vấn đề và tiếp tục viết mã.

1

tôi đã cùng một vấn đề với FinalizerReference, chỉ có trên Nexus 5.

Dưới đây là ảnh chụp màn hình của đống đổ từ Android Studio. enter image description here

Sau một số nghiên cứu, tôi đã tìm thấy this nhận xét, trong đó có thể nói rằng điều này có thể do Hệ thống gây ra.

Ngoài ra, tôi đã sử dụng Công cụ phân tích bộ nhớ của Eclipse (MAT), chứng minh rằng rất nhiều đối tượng thuộc về Hệ thống.

Và, nó không chiếm quá nhiều bộ nhớ khi vùng lưu trữ của Android Studio hiển thị.

enter image description here

+0

Tôi có nghĩa là hệ thống, bởi vì nó có "Hệ thống Class" được viết bên cạnh nó và nhiều như tôi biết, nó có nghĩa là hệ thống Android đã tải lớp đó – hakobyanheghine

Các vấn đề liên quan