【问题标题】:Dalvik memory allocationDalvik 内存分配
【发布时间】:2012-04-04 05:48:23
【问题描述】:

有什么办法,如何以编程方式(例如分配和填充一些数组)检查,在OutOfMemoryError 出现之前,Dalvik 可以分配多少内存?用Java可以做到吗?

【问题讨论】:

  • 看看这个:stackoverflow.com/questions/2630158/… 希望对你有帮助...
  • 谢谢,我知道,有一行解决方案,但我需要手动验证...这就是我要求以编程方式解决的原因

标签: java android memory-management dalvik


【解决方案1】:

每个 Java 应用程序在运行时都会分配内存。这就是我们使用

所做的
java -Xms<initial heap size> -Xmx<maximum heap size>. 

此外,在 Throwable 块中,您可以执行以下方式:

  1. 总内存(堆) - Runtime.getRuntime().totalMemory();
  2. System.out.println("已用内存:"
    + (runtime.totalMemory() - Runtime.runtime.freeMemory()) / mb);
  3. System.out.println("可用内存:"
    + Runtime.runtime.freeMemory() / mb);
  4. System.out.println("总内存:" + runtime.totalMemory() / mb);

也许这会解决问题。

【讨论】:

  • 谢谢,这看起来不错,但问题在于字段分配。我正在使用字符串数组来确定实际分配的内存,当我设置大值时,我的程序崩溃了。你知道,如何在不需要隐式声明大小的情况下创建动态字符串数组吗?
  • 在 Java 中,您可以创建一个数组列表并将其转换为如下所示的数组: List al = new ArrayList(); al.add("你的字符串"); al.toArray(新字符串[al.size()]);。但是,在这种情况下,如果内存是一个约束,它也会崩溃。
猜你喜欢
  • 1970-01-01
  • 2013-01-10
  • 1970-01-01
  • 2011-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多