jmh
lang20150928
stay hungry stay foolish
展开
-
jmh学习笔记-自定义项目引入jmh
系列文章目录jmh学习笔记-源代码编译与bench modejmh学习笔记-State共享对象jmh学习笔记-State共享对象前后置方法jmh学习笔记-代码清除jmh学习笔记-常量折叠jmh学习笔记-Forking分叉jmh学习笔记-环境配置jmh学习笔记-缓存行的处理方式jmh学习笔记-自定义项目引入jmh文章目录系列文章目录 前言引入依赖编写jmh基准测试 总结 前言在前面的章节当中我们介绍了jmh项目的部分知识,实际使用jmh时,我们并不需要自己去编译源代码(对于学习原创 2020-12-24 13:55:56 · 299 阅读 · 0 评论 -
jmh学习笔记-缓存行的解决方式
系列文章目录jmh学习笔记-源代码编译与bench modejmh学习笔记-State共享对象jmh学习笔记-State共享对象前后置方法jmh学习笔记-代码清除jmh学习笔记-常量折叠jmh学习笔记-Forking分叉jmh学习笔记-环境配置jmh学习笔记-缓存行的处理方式文章目录系列文章目录 前言缓存行问题填充解决缓存行问题数组解决缓存行问题@Contended注解 总结 前言通常错误的分享会导致问题, 比如两个线程同时针对内存中相邻数据进行操作(通常涉及到修改),有可能涉原创 2020-12-24 11:13:59 · 162 阅读 · 0 评论 -
jmh学习笔记-环境配置
package org.openjdk.jmh.samples;import org.openjdk.jmh.annotations.Benchmark;import org.openjdk.jmh.annotations.BenchmarkMode;import org.openjdk.jmh.annotations.Fork;import org.openjdk.jmh.annotations.Mode;import org.openjdk.jmh.annotations.OutputTim原创 2020-12-23 17:27:51 · 278 阅读 · 0 评论 -
jmh学习笔记-Forking分叉
系列文章目录jmh学习笔记-源代码编译与bench modejmh学习笔记-State共享对象jmh学习笔记-State共享对象前后置方法jmh学习笔记-代码清除jmh学习笔记-常量折叠jmh学习笔记-Forking文章目录系列文章目录 前言 一、循环优化 二、Forking 总结 前言众所周知,JVM擅长于配置文件引导的优化。 这对基准测试是不利的,因为不同的测试可以将其配置文件混合在一起,然后为每个测试呈现“一致不良”的代码。 Forking(在单独的进程中运行)每个测试都可以原创 2020-12-22 19:23:40 · 477 阅读 · 0 评论 -
jmh学习笔记-常量折叠
系列文章目录jmh学习笔记-源代码编译与bench modejmh学习笔记-State共享对象jmh学习笔记-State共享对象前后置方法jmh学习笔记-代码清除jmh学习笔记-常量折叠文章目录系列文章目录 前言 一、常量折叠 1、常量折叠 2、避免常量折叠 3、测试结果 总结 前言消除死代码的另一面是常量折叠。 如果JVM意识到无论如何计算结果都是相同的,它可以巧妙地优化它。 这意味着我们可以将计算移到内部JMH循环之外,这样最后的测试结果是不精确的。 通过始终读取@State对象原创 2020-12-22 17:14:15 · 146 阅读 · 0 评论 -
jmh学习笔记-代码清除
系列文章目录jmh学习笔记-源代码编译与bench modejmh学习笔记-State共享对象jmh学习笔记-State共享对象前后置方法jmh学习笔记-代码清除文章目录系列文章目录 前言 一、基准测试 二、代码清除 三、限制代码清除 四、统一测试 总结 前言许多基准测试的失败之处在于死代码消除(DCE):编译器足够聪明,可以推断出某些计算是多余的,并且可以完全消除它们。 如果被淘汰的部分是我们的基准代码,那么我们就有麻烦了。 幸运的是,JMH提供了必要的基础架构来在适当的情况下与之抗原创 2020-12-22 15:57:24 · 203 阅读 · 3 评论 -
jmh学习笔记-State共享对象前后置方法
系列文章目录jmh学习笔记-源代码编译与bench modejmh学习笔记-State共享对象jmh学习笔记-State共享对象前后置方法文章目录系列文章目录 前言 一、fixture方法 1、Trial 2、Iteration 3、Invocation 总结 前言在上一章当中,我们学习了@State注解在基准测试当中用于线程内共享实例、线程间共享实例、甚至在基准方法中共享实例。但是无论哪种方式,这个对象的使用都逃脱不了基准测试方法内部。如果想在基准测试之前或者之后针对这些状态进行管理,原创 2020-12-22 15:27:53 · 723 阅读 · 0 评论 -
jmh学习笔记-State共享对象
/* * Copyright (c) 2014, Oracle America, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of sourc原创 2020-12-22 12:17:00 · 611 阅读 · 2 评论 -
jmh学习笔记-源代码编译与bench mode
系列文章目录jmh学习笔记-源代码编译与bench mode文章目录系列文章目录 前言 一、jmh源码编译 二、jmh测试案例分析 1、平均测试时间 2、采样执行时间 3、单次时间 4. 所有模式 总结 前言jmh用于测试参考官方github:https://github.com/openjdk/jmh提示:以下是本篇文章正文内容,下面案例可供参考 一、jmh源码编译下载jmh1.26版本:https://github.com/openjdk/jmh/releases/tag/1.原创 2020-12-21 14:06:07 · 448 阅读 · 1 评论