我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java Benchmark 基准测试的实例详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java Benchmark 基准测试的实例详解

Java Benchmark 基准测试的实例详解

import java.util.Arrays; import java.util.concurrent.TimeUnit;  import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; import org.openjdk.jmh.annotations.Measurement; import org.openjdk.jmh.annotations.Mode; import org.openjdk.jmh.annotations.OutputTimeUnit; import org.openjdk.jmh.annotations.Scope; import org.openjdk.jmh.annotations.State; import org.openjdk.jmh.annotations.Threads; import org.openjdk.jmh.annotations.Warmup; import org.openjdk.jmh.runner.Runner; import org.openjdk.jmh.runner.RunnerException; import org.openjdk.jmh.runner.options.Options; import org.openjdk.jmh.runner.options.OptionsBuilder;  @BenchmarkMode(Mode.Throughput)//基准测试类型 @OutputTimeUnit(TimeUnit.SECONDS)//基准测试结果的时间类型 @Warmup(iterations = 3)//预热的迭代次数 @Threads(2)//测试线程数量 @State(Scope.Thread)//该状态为每个线程独享 //度量:iterations进行测试的轮次,time每轮进行的时长,timeUnit时长单位,batchSize批次数量 @Measurement(iterations = 2, time = -1, timeUnit = TimeUnit.SECONDS, batchSize = -1) public class InstructionsBenchmark{   static int staticPos = 0;   //String class="lazy" data-src = "SELECT a FROM ab       , ee.ff AS f,(SELECT a FROM `schema_bb`.`tbl_bb`,(SELECT a FROM ccc AS c, `dddd`));";   final byte[] class="lazy" data-srcBytes = {83, 69, 76, 69, 67, 84, 32, 97, 32, 70, 82, 79, 77, 32, 97, 98, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 44, 32, 101, 101, 46, 102, 102, 32, 65, 83, 32, 102, 44, 40, 83, 69, 76, 69, 67, 84, 32, 97, 32, 70, 82, 79, 77, 32, 96, 115, 99, 104, 101, 109, 97, 95, 98, 98, 96, 46, 96, 116, 98, 108, 95, 98, 98, 96, 44, 40, 83, 69, 76, 69, 67, 84, 32, 97, 32, 70, 82, 79, 77, 32, 99, 99, 99, 32, 65, 83, 32, 99, 44, 32, 96, 100, 100, 100, 100, 96, 41, 41, 59};   int len = class="lazy" data-srcBytes.length;   byte[] array = new byte[8192];   int memberVariable = 0;    //run   public static void main(String[] args) throws RunnerException {     Options opt = new OptionsBuilder()         .include(InstructionsBenchmark.class.getSimpleName())         .forks(1)         //   使用之前要安装hsdis         //-XX:-TieredCompilation 关闭分层优化 -server         //-XX:+LogCompilation 运行之后项目路径会出现按照测试顺序输出hotspot_pid<PID>.log文件,可以使用JITWatch进行分析,可以根据最后运行的结果的顺序按文件时间找到对应的hotspot_pid<PID>.log文件         .jvmArgs("-XX:+UnlockDiagnosticVMOptions", "-XX:+LogCompilation", "-XX:+TraceClassLoading", "-XX:+PrintAssembly")         // .addProfiler(CompilerProfiler.class)  // report JIT compiler profiling via standard MBeans         // .addProfiler(GCProfiler.class)  // report GC time         // .addProfiler(StackProfiler.class) // report method stack execution profile         // .addProfiler(PausesProfiler.class)                  //.addProfiler(WinPerfAsmProfiler.class)         //更多Profiler,请看JMH介绍         //.output("InstructionsBenchmark.log")//输出信息到文件         .build();     new Runner(opt).run();   }     //空循环 对照项   @Benchmark   public int emptyLoop() {     int pos = 0;     while (pos < len) {       ++pos;     }     return pos;   }    @Benchmark   public int increment() {     int pos = 0;     int result = 0;     while (pos < len) {       ++result;       ++pos;     }     return result;   }    @Benchmark   public int decrement() {     int pos = 0;     int result = 0;     while (pos < len) {       --result;       ++pos;     }     return result;   }    @Benchmark   public int ifElse() {     int pos = 0;     int result = 0;     while (pos < len) {       if (pos == 10) {         ++result;         ++pos;       } else {         ++pos;       }     }     return result;   }    @Benchmark   public int ifElse2() {     int pos = 0;     int result = 0;     while (pos < len) {       if (pos == 10) {         ++result;         ++pos;       } else if (pos == 20) {         ++result;         ++pos;       } else {         ++pos;       }     }     return result;   }    @Benchmark   public int ifnotElse() {     int pos = 0;     int result = 0;     while (pos < len) {       if (pos != 10) {         ++pos;       } else {         ++result;         ++pos;       }     }     return result;   }    @Benchmark   public int ifLessthanElse() {     int pos = 0;     int result = 0;     while (pos < len) {       if (pos < 10) {         ++pos;       } else {         ++result;         ++pos;       }     }     return result;   }    @Benchmark   public int ifGreaterthanElse() {     int pos = 0;     int result = 0;     while (pos < len) {       if (pos > 10) {         ++pos;       } else {         ++result;         ++pos;       }     }     return result;   }    @Benchmark   public int readMemberVariable_a_byteArray() {     int pos = 0;     int result = 0;     while (pos < len) {       result = class="lazy" data-srcBytes[pos];       pos++;     }     return result;   }  } 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java Benchmark 基准测试的实例详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java Benchmark 基准测试的实例详解

Java Benchmark 基准测试的实例详解import java.util.Arrays; import java.util.concurrent.TimeUnit; import org.openjdk.jmh.annotatio
2023-05-31

gobenchmark基准测试详解

这篇文章主要介绍了gobenchmark基准测试详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-05-13

Go语言工程实践单元测试基准测试示例详解

这篇文章主要为大家介绍了Go语言工程实践单元测试基准测试示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-02-05

golang函数的性能基准测试详解

Go 函数的性能基准测试基准测试是衡量函数或代码段性能的关键工具。它可以帮助识别瓶颈、优化代码并确保应用程序的可扩展性。Go 提供了一个内置的 testing 包,用于执行基准测试。设置基准测试为了设置一个基准测试,需要在 testi
golang函数的性能基准测试详解
2024-04-28

Java基准性能测试之JMH的示例分析

这篇文章主要为大家展示了“Java基准性能测试之JMH的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java基准性能测试之JMH的示例分析”这篇文章吧。一、JMH vs JMeterJ
2023-06-20

Go语言单元测试和基准测试实例代码分析

本篇内容主要讲解“Go语言单元测试和基准测试实例代码分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Go语言单元测试和基准测试实例代码分析”吧!背景测试的出现是为了避免项目中出现重大事故测试是
2023-07-05

Java实现手写线程池实例并测试详解

这篇文章主要来模拟一下线程池和工作队列的流程,以及编写代码和测试类进行测试。文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
2023-02-22

在AmazonAurora中如何实现数据库的性能测试和基准测试

在Amazon Aurora中实现数据库的性能测试和基准测试可以通过以下步骤进行:定义测试目标:确定要测试的性能指标,例如吞吐量、响应时间等。创建测试环境:在Amazon Aurora中创建一个测试数据库实例,并确保该实例具有与生产环境相似
在AmazonAurora中如何实现数据库的性能测试和基准测试
2024-04-09

在AmazonAurora中如何实现数据库的性能测试和基准测试

AmazonAurora数据库性能测试和基准测试指南本文提供在Aurora中进行性能测试和基准测试的综合指南,涵盖方法、工具选择、指标监控、结果分析和优化措施。通过这些步骤,您可以评估Aurora的性能、识别瓶颈并实施优化,确保数据库满足应用程序需求和行业基准。
在AmazonAurora中如何实现数据库的性能测试和基准测试
2024-04-12

Java基于Rest Assured自动化测试接口详解

RestAssured是一个基于Java的流行的用于测试RESTfulAPI的库。这篇文章主要介绍了Java如何基于Rest Assured实现自动化测试接口,需要的可以参考一下
2023-03-21

基于Python的接口测试框架实例

背景 最近公司在做消息推送,那么自然就会产生很多接口,测试的过程中需要调用接口,我就突然觉得是不是可以自己写一个测试框架? 说干就干,由于现有的接口测试工具Jmeter、SoupUI等学习周期有点长,干脆自己写一个吧,不求人,所有功能自己都
2022-06-04

golang自定义函数实现的性能基准测试

在 go 中创建自定义函数基准测试性能基准测试:使用 testing 包提供的 b 类型创建自定义函数。在函数中使用 b 类型的 record 方法度量执行时间。使用 go test -bench . -benchmem 命令运行基准测试。
golang自定义函数实现的性能基准测试
2024-04-27

Swift中的HTTP模拟测试示例详解

这篇文章主要为大家介绍了Swift中的HTTP模拟测试示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-02-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录