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

标签 java garbage-collection jvm

我正在尝试了解 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/

相关文章:

java - JUnit + DbUnit - 扩展 DatabaseTestCase 时未找到测试

java - 如果我在对象的 Finalize 方法中保存对对象的引用,该对象是否会被 GC 回收?

javascript - 了解 JavaScript 中的内存管理,Mozilla

java - 获取错误 :java. lang.OutOfMemoryError:超出 GC 开销限制

java - 来自 JVM 的用于跟踪目的的唯一 ID

shell - 在父 shell 脚本中重新分配导出的变量以运行 2 个不同的子 shell 脚本

java - 如何针对不同的 Jackson 反序列化失败创建自定义 HTTP 响应消息?

java - 在 Ubuntu 中编译 Servlet 返回错误

java - 灵活搜索查询中的日期减法

Java Swing 内存使用