java - Managed Runtime Initiative 的内核补丁和 JVM 中到底有什么?

标签 java linux jvm linux-kernel kernel

http://managedruntime.org/关于 tarball 中的确切内容以及用户为何需要它们的内容非常少。 http://lwn.net/Articles/392307/有更多细节,但作者也不确定内存管理模块实际做什么。显然,高级目标是减少 GC 暂停,但我对(指向)模块所做的摘要以及为什么/如何改进事情感兴趣。特别棒的是可以指出这些补丁有多大影响(评估)。

最佳答案

Azul 的 Pauseless GC 依赖于底层操作系统的内存管理系统。在 Azul 硬件上,这是由 Azul 的自定义内核 (Aztec) 执行的。在 Linux 上,内存管理系统需要能够支持每秒足够数量的内存管理操作,以跟上每秒产生的垃圾量。当 Azul 人员将 Azul JVM 移植到 Linux 时,他们确定它的内存管理 API 与 Aztec 的相比相对较慢,如果仅仅是因为 Linux 的 MM API 从未打算支持 PGC 之类的东西。 MRT 补丁提高了 linux 内核每秒可以处理的操作数,从而支持 PGC。

一个类比是将 poll/select 添加到 Berkeley Sockets,然后在 2001 年将 epoll 添加到 linux 内核 (http://www.xmailserver.org/linux-patches/nio-improve.html)。

[免责声明:即使我是 Azul 的前技术主管和现任技术顾问,我也不代表他们]

关于java - Managed Runtime Initiative 的内核补丁和 JVM 中到底有什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3358545/

相关文章:

java - 对象的隐式与显式传递

linux - 如何使 bash 中的 RETURN 陷阱保留返回码?

design-patterns - 在 Clojure 的宏中声明设计模式

java - HQL SUM 查询 - 意外标记

java - 如何更改特定 JButton 的颜色

java - 如何更改此正则表达式以使其起作用

linux - 如何在RHEL Azure VM上的/mnt/resource中创建目录

java - Linux下用Java写的如何创建带空格的文件夹?

java - 接近空的 Java For-Loop 行为异常

java - 什么会导致 JVM 锁定机器的鼠标点击和键盘输入?