Java性能优化实践p73
通常情况下,基准测试都需要一些设置,比如创建一个数据集,或者为一组用来比较性能的、正交的基准测试集设置所需的条件。
状态,以及控制状态是JMH框架所具有的另一个特性。可以用@State注解来定义该状态,并接受Scope枚举来定义状态的可见范围:Benchmark,Group还是Thread.
使用@State注解的对象在基准测试的生命周期内都是可达的,它可能还需要执行一些必要的设置。
多线程代码也需要谨慎处理,以确保基准测试不会因为状态管理不善而出现偏差。
一般来说,如果在一个方法中执行的代码没有副作用并且返回结果也没有用到,那JVM就可以考虑移除这个方法,JMH需要防止这种情况的发生,而且事实上,对于基准测试的作者来说,这种情况带来的影响是非常直接的。如果是单个结果,那么基准测试方法可以将其返回,而且该框架要确保暗中将这个值赋值到某个地方(黑洞),这是框架作者开发的一种机制,其性能开销可以忽略不计。
如果一个基准测试要执行多个计算,那么将该方法的结果组合起来并返回的成本可能会很高。在这种情况下,作者可能需要使用一个显式的黑洞,具体做法是创建一个以Blackhole为参数的基准测试。
这次借的书是乘坐地铁2小时+去青浦图书馆提的货
上次未还的3册书也打了欠条给青浦图书馆的美女接待
作者:ukyo--碳水化合物
出处:https://www.cnblogs.com/ukzq/p/16514368.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
2021-07-24 我记博客的初衷
2020-07-24 程序员的数学基础课 时间和空间复杂度(中):优化性能是否只是“纸上谈兵”?6 个通用法则
2020-07-24 程序员的数学基础课 时间和空间复杂度(上):优化性能是否只是“纸上谈兵”?5
2020-07-24 程序员的数学基础课 原来取余操作本身就是个哈希函数 4
2020-07-24 程序员的数学基础课 1 append
2020-07-24 https://www.tiobe.com/tiobe-index//
2020-07-24 贝多芬的《D 小调第九交响曲》