ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java性能优化实践p73

2022-07-24 13:31:40  阅读:168  来源: 互联网

标签:状态 Java p73 基准 JMH 图书馆 State 测试 优化


通常情况下,基准测试都需要一些设置,比如创建一个数据集,或者为一组用来比较性能的、正交的基准测试集设置所需的条件。
状态,以及控制状态是JMH框架所具有的另一个特性。可以用@State注解来定义该状态,并接受Scope枚举来定义状态的可见范围:Benchmark,Group还是Thread.
使用@State注解的对象在基准测试的生命周期内都是可达的,它可能还需要执行一些必要的设置。
多线程代码也需要谨慎处理,以确保基准测试不会因为状态管理不善而出现偏差。

一般来说,如果在一个方法中执行的代码没有副作用并且返回结果也没有用到,那JVM就可以考虑移除这个方法,JMH需要防止这种情况的发生,而且事实上,对于基准测试的作者来说,这种情况带来的影响是非常直接的。如果是单个结果,那么基准测试方法可以将其返回,而且该框架要确保暗中将这个值赋值到某个地方(黑洞),这是框架作者开发的一种机制,其性能开销可以忽略不计。

如果一个基准测试要执行多个计算,那么将该方法的结果组合起来并返回的成本可能会很高。在这种情况下,作者可能需要使用一个显式的黑洞,具体做法是创建一个以Blackhole为参数的基准测试。

image
[图1 还没隔离前浦东图书馆照]

image
[图2 还没隔离前浦东图书馆照]

这次借的书是乘坐地铁2小时+去青浦图书馆提的货
上次未还的3册书也打了欠条给青浦图书馆的美女接待

标签:状态,Java,p73,基准,JMH,图书馆,State,测试,优化
来源: https://www.cnblogs.com/ukzq/p/16514368.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有