我正在尝试了解 Java 垃圾回收。提到垃圾收集中的四种度量here :
- 吞吐量
- 停顿
- 足迹
- 敏捷
Footprint is the working set of a process, measured in pages and cache lines. On systems with limited physical memory or many processes, footprint may dictate scalability.
其他三个我都能理解,但是Footprint
到底是什么,如何优化呢?
最佳答案
足迹是进程分配的内存量。
优化它意味着用更少的时间在内存中存储更少的东西(不要加载你不需要的东西,尽快释放内存,即不要保留对不再使用的变量的引用)。
减少占用空间可能会带来 CPU 或其他 IO 的额外开销(内存访问速度比文件系统或网络快得多)。
您还可以通过限制分配的最大内存量(-Xmx JVM 选项)来减少整个 Java 进程的占用,但是使用很少的内存会触发更多(更频繁和更长时间)的垃圾收集器调用,因此会使用更多的 CPU) .
减少足迹的一个很好的例子是使用拉式解析器(逐 block 解析树 block )而不是 DOM(将整个树加载到内存中以进行处理)来处理 XML 树
关于java - 了解 Java 垃圾收集中的足迹测量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48809234/