首页> 外文会议>ACM SIGPLAN conference on Programming language design and implementation >Support for garbage collection at every instruction in a Java compiler
【24h】

Support for garbage collection at every instruction in a Java compiler

机译:支持Java编译器中每条指令的垃圾回收

获取原文
获取外文期刊封面目录资料

摘要

A high-performance implementation of a Java Virtual Machine1 requires a compiler to translate Java bytecodes into native instructions, as well as an advanced garbage collector (e.g., copying or generational). When the Java heap is exhausted and the garbage collector executes, the compiler must report to the garbage collector all live object references contained in physical registers and stack locations. Typical compilers only allow certain instructions (e.g., call instructions and backward branches) to be GC-safe; if GC happens at some other instruction, the compiler may need to advance execution to the next GC-safe point. Until now, no one has ever attempted to make every compiler-generated instruction GC-safe, due to the perception that recording this information would require too much space. This kind of support could improve the GC performance in multithreaded applications. We show how to use simple compression techniques to reduce the size of the GC map to about 20% of the generated code size, a result that is competitive with the best previously published results. In addition, we extend the work of Agesen, Detlefs, and Moss, regarding the so-called "JSR Problem" (the single exception to Java's type safety property), in a way that eliminates the need for extra runtime overhead in the generated code.
机译:Java虚拟机 1 的高性能实现需要编译器将Java字节码转换为本机指令,以及高级垃圾收集器(例如,复制或分代)。当Java堆耗尽并执行垃圾收集器时,编译器必须向垃圾收集器报告物理寄存器和堆栈位置中包含的所有活动对象引用。典型的编译器仅允许某些指令(例如,调用指令和后向分支)是 GC安全的;如果GC在其他指令处发生,则编译器可能需要将执行推进到下一个GC安全点。迄今为止,由于人们认为记录此信息将需要太多空间,因此从未有人尝试使编译器生成的指令GC安全。这种支持可以提高多线程应用程序中的GC性能。我们展示了如何使用简单的压缩技术将GC映射的大小减小到生成代码大小的20%左右,这一结果与以前发布的最佳结果相比具有竞争力。此外,我们扩展了Agesen,Detlefs和Moss关于所谓的“ JSR问题”(Java类型安全属性的唯一例外)的工作,从而消除了在生成的代码中额外的运行时开销的需求。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号