据我了解, *** 作系统内存消耗应为堆大小+ PermGen大小〜= 522 MB。但这比我观察到的少了471 MB。有人知道我在这里想念什么吗?
如果我理解这个问题,那么您将看到的是内存碎片和其他方面的JVM内存开销的组合。我们经常看到生产程序的内存使用量是我们的内存设置所期望的两倍。
内存碎片可能意味着,尽管JVM认为 *** 作系统已为其分配了一定数量的字节,但由于内存子系统的优化,必须增加一定数量的字节。
在JVM开销方面,标准内存配置中不包含许多其他存储区域。这是一个很好的讨论。报价:
以下是不属于垃圾收集堆但属于进程所需内存的事物的示例:
- 实现JVM的代码
- 用于实现JVM的数据结构的C手册堆
- 系统中所有线程的堆栈(应用程序+ JVM)
- 缓存的Java字节码(用于库和应用程序)
- JITed机器代码(用于库和应用程序)
- 所有已加载类的静态变量
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)