了解java垃圾收集中的足迹测量

了解java垃圾收集中的足迹测量,java,garbage-collection,jvm,Java,Garbage Collection,Jvm,我试图理解java垃圾收集。在垃圾收集中提到了四种度量: 吞吐量 停顿 足迹 迅速 Footprint是进程的工作集,以页面和缓存度量 线。在物理内存有限或进程较多的系统上, 足迹可能决定可伸缩性 我可以理解其他三个,但什么是内存占用以及如何优化它?内存占用指的是程序运行时使用或引用的主内存量。 较大的程序具有较大的内存占用。应用程序的内存占用大致与它加载的共享库或类的数量和大小成正比,而静态库、可执行程序和静态数据区域占固定(恒定)部分。程序本身通常不会对自己的内存占用贡献最大的部分。 在

我试图理解java垃圾收集。在垃圾收集中提到了四种度量:

  • 吞吐量
  • 停顿
  • 足迹
  • 迅速
Footprint是进程的工作集,以页面和缓存度量 线。在物理内存有限或进程较多的系统上, 足迹可能决定可伸缩性


我可以理解其他三个,但什么是
内存占用
以及如何优化它?

内存占用指的是程序运行时使用或引用的主内存量。 较大的程序具有较大的内存占用。应用程序的内存占用大致与它加载的共享库或类的数量和大小成正比,而静态库、可执行程序和静态数据区域占固定(恒定)部分。程序本身通常不会对自己的内存占用贡献最大的部分。
在Java程序中,内存占用主要由Java虚拟机(JVM)本身形式的运行时环境构成,Java应用程序启动时会间接加载JVM

Footprint是进程分配的内存量

优化它意味着用更少的时间在内存中存储更少的内容(不要加载不需要的内容,尽快释放内存,即不要将引用保留在不再使用的变量上)

减少占用空间可能会带来CPU或其他IO的额外开销(内存访问速度比文件系统或网络快得多)

您还可以通过限制分配的最大内存量(-Xmx-JVM选项)来减少整个java进程的占用,但是使用很少的内存将触发更多(更频繁、更长)的垃圾收集器调用,因此将使用更多的CPU)


减少占地面积的一个很好的例子是使用拉式解析器(chunck解析树块)而不是DOM(将整个树加载到内存中进行处理)来处理XML树。

我做了一些研究,例如。java垃圾收集中的
footprint
是一回事吗?是的。可以减少java应用程序的内存占用,以便使用垃圾收集器等工具优化内存消耗。此工具提供了更好的堆内存清理过程。