【问题标题】:Android VM heap sizeAndroid 虚拟机堆大小
【发布时间】:2013-02-18 15:35:48
【问题描述】:

我不明白什么是 android 应用程序堆大小。 我可以从 java 和 frome 本机代码分配的总体最大内存吗?如果是,那么为什么在我的 google nexus S 上。这段代码

Runtime rt = Runtime.getRuntime();
long maxMemory = rt.maxMemory();
Log.v("onCreate", "maxMemory:" + Long.toString(maxMemory));

显示 50331648 = 48MB 但 dumpsys meminfo 显示 本机 13 16 12 84028 83457 18

我可以轻松分配 74MB

int size = 1024*1024*74;
char* s = new char[size];

【问题讨论】:

  • VM 堆大小不适用于本机分配。

标签: java android memory


【解决方案1】:

嗯,堆大小实际上是一个编程概念,远不止是 Android 概念。你可以阅读它here,但实际上(短篇小说)VM 正在使用多少内存并且它是独立于你的应用程序分配的。

分配给您的应用的内存是动态分配的。因此,如果您要求您的应用程序分配更多内存,您会看到它增长。但它不能无限增长。

【讨论】:

    【解决方案2】:

    堆大小是可以分配的 RAM 量。每个应用程序都位于一个小型 Dalvik 虚拟机上。每个 VM 都会分配一些堆空间。

    而且,每个设备的/system/build.prop 文件中都有一个预定义的堆大小设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-23
      • 2013-05-01
      • 1970-01-01
      • 2013-01-14
      • 1970-01-01
      • 1970-01-01
      • 2022-11-25
      • 1970-01-01
      相关资源
      最近更新 更多