官术网_书友最值得收藏!

Driving factors

Imagine that you are a GC developer and you are supposed to know all the places where you could locate the code for GC in HotSpot. If this doesn't sound scary enough, imagine how it would feel if you didn't know how to extend it to your specific requirements. Or, imagine that you are a HotSpot developer (not a GC developer), and you can't seem to find a specific code for a GC. We are not done yetnow imagine that you must exclude a specific GC at build time. These cases are represented in the following diagram:

The preceding use cases demonstrate the major factors driving the changes to the code baseby pushing the creation of a clean GC interface.

Even though the code of the GCs was defined in their respective directories (for example, the src/hotspot/share/gc/g1 stored code for G1 GC), some code was defined outside these directories. A typical example of this is the barrier required by most of the GC. Since the barrier code was implemented in the C1 and C2 runtime interpreter, this code was defined in the directories that defined the code for C1 and C2. However, this leads to a fragmented GC code, which is hard to track and locate.

A GC interface introduces a layer of abstraction, taking the burden to track all the GC code off a developer (both GC and HotSpot).

主站蜘蛛池模板: 博客| 双桥区| 文山县| 忻州市| 承德市| 铜鼓县| 方正县| 若尔盖县| 瓦房店市| 神农架林区| 石嘴山市| 芷江| 嫩江县| 阜新市| 尚志市| 徐汇区| 乌兰察布市| 通许县| 莱芜市| 灌云县| 威宁| 兴义市| 咸宁市| 光泽县| 新乐市| 鄯善县| 吉林市| 海丰县| 临桂县| 承德市| 抚州市| 抚州市| 昭觉县| 含山县| 观塘区| 湖南省| 普洱| 海城市| 施秉县| 汉阴县| 河间市|