首页 > 代码库 > 神秘的FrontCache

神秘的FrontCache

用jmap -histo的时候,发现堆内存中有很多奇怪的对象,其class name为

java.util.HashMap$FrontCache

跳转到HashMap的源码中,直接搜索FrontCache关键字,居然一无所获

在Google上搜索一番,发现了一篇博文,链接如下

http://developers-club.com/posts/172295/

 

其大意为:在JVM启动参数里加上AggressiveOpts选项,JVM会使用alt-rt.jar取代rt.jar

alt-rt.jar中的HashMap的实现中有FrontCache这个子类,其作用是创建一个相当大的Object数组cache[],当存入Map的key为Integer类型的时候,就把value放到cache[key]中,取的时候就直接从cache数组里取

这个东西只能在key为Integer类型时起到优化作用,而且会牺牲一些空间

 

神秘的FrontCache