Windows任务管理器显示我的javafx应用程序的350mb内存使用量,而Runtime.getRuntime()。totalMemory()是268mb(92使用+ 176免费)。我无法理解任务管理器的这种随机行为。任何形式的帮助将不胜感激。
答案 0 :(得分:2)
Windows任务管理器显示运行JavaFX应用程序的整个Java虚拟机(JVM)的已分配内存。
仅根据API totalMemory()...
返回Java虚拟机中的内存总量。
剩下的82MB似乎是由JVM本身而不是你的应用程序分配的。
答案 1 :(得分:0)
Windows任务管理器不是观察Java应用程序的内存消耗统计信息的好工具。
Java内存基本上包含两种类型的空格:
Java堆空间 - 存储类实例和数组对象。
JVM内存(非堆内存) - 它是在JVM启动时创建的,包含方法,字段数据,常量和本机代码。这些数据不存在于堆空间中。这是您获得不同统计信息的原因比较任务管理器。