Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Runime.getRuntime().totalMemory()和ActivityManager.MemoryInfo()文件_Java_Android_Android Memory - Fatal编程技术网

Java Runime.getRuntime().totalMemory()和ActivityManager.MemoryInfo()文件

Java Runime.getRuntime().totalMemory()和ActivityManager.MemoryInfo()文件,java,android,android-memory,Java,Android,Android Memory,为什么从getRuntime.totalMemory提取的总内存不等于使用ActivityManager.MemoryInfo时的总内存?在下面的两个代码部分中,我得到了不同的值: long totalMemory = Runtime.getRuntime().totalMemory() ; 及 第一个代码是12.759.040,第二个代码是907.034.624 这是两件不同的事情 Runtime.getRuntime.totalMemory 返回Java虚拟机中的内存总量。此值可以随时间变

为什么从getRuntime.totalMemory提取的总内存不等于使用ActivityManager.MemoryInfo时的总内存?在下面的两个代码部分中,我得到了不同的值:

long totalMemory = Runtime.getRuntime().totalMemory() ;


第一个代码是12.759.040,第二个代码是907.034.624

这是两件不同的事情

Runtime.getRuntime.totalMemory

返回Java虚拟机中的内存总量。此值可以随时间变化。这是运行时可用内存

memInfo.totalMem

返回可用内存的总量

您可以参考以下两个SO主题:

返回Java虚拟机中的内存总量。此方法返回的值可能随时间而变化,具体取决于主机环境

内核可访问的总内存。这基本上是设备的RAM大小,不包括内核以下的固定分配,如DMA缓冲区、基带CPU的RAM等

请注意,保存任何给定类型的对象所需的内存量可能取决于实现

第一个是运行进程的jvm所拥有的内存,大约为12MB。 第二个是总的内核可访问系统内存,在您的例子中大约是1GB。
第一个是第二个的一部分。

感谢您提供两个主题。可以看到两个主题。两个有用的主题。
ActivityManager actManager = (ActivityManager) getActivity().getSystemService(ACTIVITY_SERVICE);
                ActivityManager.MemoryInfo memInfo = new ActivityManager.MemoryInfo();
                actManager.getMemoryInfo(memInfo);
                long totalMemory = memInfo.totalMem