MemoryAwareThreadPoolExecutor和OrderMemoryAwareT...

MemoryAwareThreadPoolExecutor和OrderMemoryAwareThreadPoolExecutor,昨晚有个有个小子说OrderMemoryAwareThreadPoolExecutor处理有顺序的数据这个是有利的,我说,一般处理数据量,会做一个排队,所以没有必要,并且OrderMemoryAwareThreadPoolExecutor在A事件没有处理完毕那么,B 事件是不会被处理,会被阻塞!我做了一个测试。在1K的并发,使用OrderMemoryAwareThreadPoolExecutor,结果我的解码器,handler和excuterhandle,对象虽然在ppiple对象中被回收,这里是在hash中调用的remove(),看源码就知道了,但是实际的实体对象没有被回收,通过jprofiler对象观察到,并且我的ps old gen 峰值达到了500m,尼玛,这是前所未有的,虽然被GC回收,但是这里频繁了GC,后来换回MemoryAwareThreadPoolExecutor测试,ps old gen 没有超过50M,估计只有10M,并且解码器,handler和excuterhandle,的引用也被回收。所以综上所述,推荐MemoryAwareThreadPoolExecutor,后者是没有必要的(具体的话 根据实际来处理),我是推荐前者!

这是ps old gen 所占的内存空间,使用MemoryAwareThreadPoolExecutor后;

这里是我在多次连接了服务端在3k,然后断了2k,变为了1k,被回收了的。

转载于:https://my.oschina.net/chenleijava/blog/101831

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值