AggressiveOpts UseStringDeduplication 加快编译与字符串去重

-XX:+AggressiveOpts -XX:+UseStringDeduplication  加快编译   字符串去重

 

-XX:StringDeduplicationAgeThreshold

默认情况下,一个字符串对象经过3次GC以后还存活才会被列为去重的候选对象,可以用-XX:StringDeduplicationAgeThreshold来改变经历的GC的次数

-XX:+UseStringDeduplication并不会消除重复字符串的引用本身,它只会替换底层的char[],消除重复字符串对象只需要对value字段进行重新引用赋值即可, 差不多就是这个意思:aString.value = anotherString.value。

任何一个String对象在内存中最少占用24个字节,启用这个参数以后如果有很多短的重复字符串对象的话会大大的节省内存。

(7)-XX:+PrintStringDeduplicationStatistics查看去重信息

如果你想查看字符串去重的一些统计信息,比如说去重花了多长时间、多少重复字符串被去重、节省了多少内存等等,可以传递-XX:+PrintStringDeduplicationStatistics这个参数给JVM,在GC日志中就可以打印出这些信息来。

结论

如果你的应用使用的是G1收集器,并且JDK的版本大于 JDK 8 update 20,那么可以尝试开启-XX:+UseStringDeduplication,如果你的应用中存在大量长时间存活的对象,那结果肯定是很香。但是,如果想用在生产环境中还是需要测试一下才可以。

 

亲缘性线程池   内部实现   根据key绑定单线程的线程池  底层实现则是多个单线程池组成的 大线程池   应用场景: 线程池无序 但是希望以某一个维度有序  比如  一组数据希望同一个userid下的数据 顺序执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值