我想在文字处理应用中加载文本文件。但是当文件太大时我会出现内存错误。我最终确定我可以加载最多1 MB的文件。但有时即使是1MB文件,我也会内存不足。但在加载之前我必须说是否可以加载文件。
除了freeMemory()之外,我尝试了寻找最大可能内存的解决方案, 即freememory +(maxmemory - totalmemory),它将为应用程序提供可用的总内存。 (假设它大约是18MB到20MB)。但是在完全利用堆之后我得到了outofMemory错误。比方说(24 MB)。
在加载1MB文件时,我的问题是(18MB到20 mb)的“最大可用内存”用于分配。
有多少内存可用于加载1MB文件。
如何粗略计算它。
有没有任何出路的PSS,Privatedirty。我对PSS了解不多。但是我在“如何在Android中发现我的应用程序的内存使用情况”一文中总结了很多信息
由于
答案 0 :(得分:0)
请记住,将文件存储在变量中的方式非常重要。手动使用char数组是最节省内存的方法之一,但您仍然需要考虑每个占16位或2字节的字符。因此,如果您使用某些8位编码的文本文件并将其加载到char数组中,则需要两倍的空间。