我有一個創建一系列位圖的應用程序。我在SoftReferences中保存這些位圖,以避免內存不足。我希望堆大小增長到最大16MBs,然後開始收集我的SoftReferences。然而,SoftReference是非常熱切地收集的,在將堆增加到最大值之前。無論如何強迫收集引用不那麼熱切?或者手動將堆擴展到最大?可能是一種只用16mb分配啓動應用程序的方法?Android堆大小和SoftReferences
3
A
回答
3
目前無法修改SoftReference收集行爲。
我不確定你的意思是「手動增加堆到最大」。
如果這些是Bitmap類的實例(與一些自定義位圖實現相對),則像素數據實際上存儲在本機堆中,但使用煩人的「外部分配」會計技巧,這進一步使情況變得複雜。 (值得注意的是,存儲器由終結器釋放,而不是GC,並且終結器必須在GC完成後在單獨的線程中執行。可以分配Bitmaps,直到內存用完,GC無法釋放內存在投擲OOM錯誤之前)。
1
這是Andriod中的一個已知問題。當虛擬機收集軟引用時,它收集全部或不收集,儘管它應該收集「一些」,並且當有大量的免費堆時不應收集任何東西。
檢查:http://code-gotcha.blogspot.com/2011/09/softreference.html
相關問題
- 1. Android Studio堆大小
- 2. Android VM堆大小
- 3. Android堆棧大小
- 4. Android堆大小小於16mb
- 5. Cassandra和堆大小
- 6. 關於createScaledBitmap和SoftReferences角色的Android OutOfMemoryException?
- 7. 關於堆(最大堆和最小堆)
- 8. Android瞭解堆大小
- 9. 檢查android堆大小
- 10. Android設備,堆大小
- 11. android java堆大小超過
- 12. Cassandra緩存大小和JVM堆大小
- 13. android renderscript堆棧大小太小
- 14. Android studio,最大堆大小無效
- 15. Android上本機堆的最大大小?
- 16. 如何計算保留的堆大小和淺堆大小?
- 17. 堆大小和位置
- 18. Elasticsearch堆大小
- 19. iphone os支持的最大堆大小和堆棧大小是多少?
- 20. Android活動堆棧大小問題?
- 21. 不同的Android設備的堆大小
- 22. 的Android:增加調用堆棧大小
- 23. Android,關注虛擬機堆大小
- 24. Android中JVM的堆大小爲
- 25. android 495KB圖像佔用10MB堆大小
- 26. 定期在Android上輪詢堆大小
- 27. -Xms:初始堆大小或最小堆大小?
- 28. Cassandra最小堆大小
- 29. Tomcat7堆棧大小很小
- 30. 堆大小大於-Xmx
由「堆增長到最大」我希望的辦法,迫使16MB的分配我的應用程序,在啓動時。相當於:來自java的「-Xmx16m」。 – ab11 2010-12-03 01:01:45