2013-07-03 28 views
10

Trong khi gỡ lỗi ứng dụng Android của tôi vào thời điểm nhất định tôi nhìn thấy một số lượng lớn các mục trong LogCat vớiTag: TextLayoutCache Text: cache Giá trị xóa

Tag: TextLayoutCache Text: Cache Value 0x51b9f578 deleted, size=168 (the hexa value changes from entry to entry) 

Có ai biết điều này thế nào? Bộ nhớ bị rò rỉ? Bất kỳ ý tưởng làm thế nào để giải quyết nó nếu nó là một vấn đề? Cảm ơn!

Trả lời

5

Có không dường như là một câu trả lời dứt khoát trên mạng, vì vậy tôi đã xem mã cho TextLayoutCache.cpp. Trông ổn với tôi. Đó là bộ nhớ đệm dữ liệu bố cục văn bản để cải thiện hiệu suất và hiện tại có kích thước bộ nhớ cache mặc định cố định là 0,5MB được xác định trong TextLayoutCache.h.

Vì vậy, nếu bạn đang thay đổi văn bản bố cục thành một tập hợp giá trị cố định (< 0,5MB), bạn sẽ không thấy thông báo tường trình.

Nếu bạn thay đổi văn bản thành giá trị động thì cuối cùng bộ nhớ cache sẽ điền và mục nhập bộ nhớ cache LRU (ít được sử dụng gần đây nhất) sẽ bị xóa và bạn sẽ thấy thông báo tường trình. Nó chỉ là một thông điệp gỡ lỗi, không phải là một lỗi, không phải là một rò rỉ. Đó là chỉ số hiệu suất hữu ích về cách thức Android nội bộ đang xử lý Ứng dụng của chúng tôi.

Lưu ý rằng TextLayoutCache không được sử dụng trong các phiên bản Android> = 5.

0

tôi đi qua cùng một vấn đề khi tôi đã cập nhật giá trị TextView của tôi từ xử lý sử dụng Runnable &

tôi thu thập được thể hiện của TextView bởi findViewById() vào biến, sau đó cập nhật giá trị của TextView bằng cách tham khảo những trường hợp thu thập được. Vì vậy, như tôi quan sát thấy tôi không cần trường hợp của textview bên ngoài của hander của tôi vì vậy tôi chỉ đơn giản là sử dụng findViewById() bên trong xử lý và cập nhật textviews của tôi.

viết findviewById của bạn() trong bối cảnh mà bạn cần id. (Nói về dấu ngoặc bên trong hàm của bạn sử dụng nó .. trong trường hợp của tôi.)

Hope this helps ...

+0

Cảm ơn, tôi sẽ thử nó, nhưng dù sao, mặc dù nếu nó hoạt động, tôi cứ không hiểu lỗi này, như thế nào/Khi/gì đó được lưu trữ. BTW, tôi đã kiểm tra và sử dụng tham chiếu ở nhiều nơi, vì vậy tôi không muốn gọi hàm tìm kiếm mỗi khi tôi sử dụng phương thức trong lớp thay vì chỉ có một tham chiếu và sử dụng nó. – polonskyg

+0

Như tôi đã đề cập đến, tôi đã xem xét điều này trong khi cập nhật textView từ chuỗi chạy liên tục. Nếu bạn không gọi findViewById nó sẽ thêm các dòng đó vào logcat của bạn. Nó không liên quan đến rò rỉ bộ nhớ, tôi đã trả lời câu hỏi với lý do tại sao nó xảy ra (trong trường hợp của tôi). – MobileEvangelist

+0

Ok, tôi đã thử nó, nhưng cứ nói như vậy, có thể là một vấn đề khác. Dù sao cũng cảm ơn! – polonskyg

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