queue的增强版
public class EnhancedQueueextends LinkedBlockingQueue { private Counter pendings; private Meter inQueueMeter; private Meter deQueueMeter; private String name; public EnhancedQueue(MetricRegistry metricRegistry,String name){ this.name = name; this.pendings = metricRegistry.counter(MetricRegistry.name(EnhancedQueue.class + name, "pendings")); this.inQueueMeter = metricRegistry.meter(MetricRegistry.name(EnhancedQueue.class + name,"in-queue","tps")); this.deQueueMeter = metricRegistry.meter(MetricRegistry.name(EnhancedQueue.class + name,"de-queue","tps")); } @Override public E take() throws InterruptedException { E element = super.take(); pendings.dec(); deQueueMeter.mark(); return element; } @Override public void put(E e) throws InterruptedException { super.put(e); pendings.inc(); inQueueMeter.mark(); } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/65021.html
摘要:能够让的周期利用的更充分对于多线程应用运行在多处理器和多核系统上至很有挑战性的。另外,当达到饱和状态的时候并不能说明的性能和伸缩性已经达到了最佳的状态。磁盘如果应用有对磁盘进行操作,我们需要对磁盘进行监控,来监测可能出现的磁盘性能问题。 对于 Java 性能比较关心的同学大概都知道《Java Performance》这本书,一般而言,很多同学在日常写 Java Code 的时候很少去关...
摘要:对比操作前后的来定位内存泄露的根因所在。手机管家内存泄露每日监控方案目前手机管家的内存泄露每日监控会自动运行并输出是否存在疑似泄露的报告邮件,不论泄露对象的大小。 腾讯Bugly特约作者: 姚潮生 最原始的内存泄露测试 重复多次操作关键的可疑的路径,从内存监控工具中观察内存曲线,是否存在不断上升的趋势且不会在程序返回时明显回落。这种方式可以发现最基本,也是最明显的内存泄露问题,对用户价...
摘要:对比操作前后的来定位内存泄露的根因所在。手机管家内存泄露每日监控方案目前手机管家的内存泄露每日监控会自动运行并输出是否存在疑似泄露的报告邮件,不论泄露对象的大小。 腾讯Bugly特约作者: 姚潮生 最原始的内存泄露测试 重复多次操作关键的可疑的路径,从内存监控工具中观察内存曲线,是否存在不断上升的趋势且不会在程序返回时明显回落。这种方式可以发现最基本,也是最明显的内存泄露问题,对用户价...
摘要:打开邮件一看,果然告知我有一个应用的线程池队列达到阈值触发了报警。线程池的名称一定得取的有意义,不然是自己给自己增加难度。根据监控将线程池的队列大小调整为一个具体值,并且要有拒绝策略。 showImg(https://segmentfault.com/img/remote/1460000016944121?w=1920&h=1080); 背景 上午刚到公司,准备开始一天的摸鱼之旅时突然...
阅读 1671·2023-04-26 02:30
阅读 1003·2021-11-10 11:36
阅读 1344·2021-10-08 10:14
阅读 3459·2021-09-28 09:35
阅读 1505·2021-08-23 09:47
阅读 2482·2019-08-30 15:56
阅读 1431·2019-08-30 15:44
阅读 1680·2019-08-30 13:59