当前位置: 首页 > news >正文

浙江建设银行网站建个网站要花多少钱

浙江建设银行网站,建个网站要花多少钱,设计签名在线生成免费,dede网站地图路径JMH#xff0c;即Java Microbenchmark Harness#xff0c;这是专门用于进行代码的微基准测试的一套工具API。 JMH 由 OpenJDK/Oracle 里面那群开发了 Java 编译器的大牛们所开发 。何谓 Micro Benchmark 呢#xff1f; 简单地说就是在 方法层面上的 benchmark#xff0c;精…JMH即Java Microbenchmark Harness这是专门用于进行代码的微基准测试的一套工具API。 JMH 由 OpenJDK/Oracle 里面那群开发了 Java 编译器的大牛们所开发 。何谓 Micro Benchmark 呢 简单地说就是在 方法层面上的 benchmark精度可以精确到微秒级。 本文主要介绍了性能基准测试工具 JMH它可以通过一些功能来规避由 JVM 中的 JIT 或者其他优化对性能测试造成的影响。 Java的基准测试需要注意的几个点 测试前需要预热。防止无用代码进入测试方法中并发测试测试结果呈现 如果我们要通过JMH进行基准测试的话直接在我们的pom文件中引入JMH的依赖即可 dependencies {jmhCompile projectjmhCompile org.openjdk.jmh:jmh-core:1.24jmhAnnotationProcessor org.openjdk.jmh:jmh-generator-annprocess:1.24}Fork 进行 fork 的次数可用于类或者方法上。如果 fork 数是 2 的话则 JMH 会 fork 出两个进程来进行测试。 Threads 每个测试进程的测试线程数量。 OutputTimeUnit 测试结果的时间单位。 Param 指定某项参数的多种情况特别适合用来测试一个函数在不同的参数输入的情况下的性能只能作用在字段上使用该注解必须定义 State 注解。 Setup 必须标示在State注解的类内部表示初始化操作 TearDown 必须表示在State注解的类内部表示销毁操作 Level.Trial 只会在个基础测试的前后执行。包括Warmup和Measurement阶段一共只会执行一次。 Level.Iteration 每次执行记住测试方法的时候都会执行如果Warmup和Measurement都配置了2次执行的话那么Setup和TearDown配置的方法的执行次数就4次。 Level.Invocation 每个方法执行的前后执行一般不推荐这么用 Benchmark Benchmark标签是用来标记测试方法的只有被这个注解标记的话该方法才会参与基准测试但是有一个基本的原则就是被Benchmark标记的方法必须是public的。 Warmup Warmup用来配置预热的内容可用于类或者方法上越靠近执行方法的地方越准确。一般配置warmup的参数有这些 iterations预热的次数。 time每次预热的时间。 timeUnit时间单位默认是s。 batchSize批处理大小每次操作调用几次方法。 Measurement 用来控制实际执行的内容 iterations执行的次数。 time每次执行的时间。 timeUnit时间单位默认是s。 batchSize批处理大小每次操作调用几次方法。 BenchmarkMode BenchmarkMode主要是表示测量的纬度有以下这些纬度可供选择 Mode.Throughput 整体吞吐量每秒执行了多少次调用单位为 ops/time Mode.AverageTime 用的平均时间每次操作的平均时间单位为 time/op Mode.SampleTime 随机取样最后输出取样结果的分布 Mode.SingleShotTime 只运行一次往往同时把 Warmup 次数设为 0用于测试冷启动时的性能 Mode.All上面的所有模式都执行一次 Mode.All 运用所有的检测模式 在方法级别指定BenchmarkMode的时候可以一定指定多个纬度例如BenchmarkMode({Mode.Throughput, Mode.AverageTime, Mode.SampleTime, Mode.SingleShotTime})代表同时在多个纬度对目标方法进行测量。 OutputTimeUnit OutputTimeUnit代表测量的单位比如秒级别毫秒级别微妙级别等等。一般都使用微妙和毫秒级别的稍微多一点。该注解可以用在方法级别和类级别当用在类级别的时候会被更加精确的方法级别的注解覆盖原则就是离目标更近的注解更容易生效。 State 在很多时候我们需要维护一些状态内容比如在多线程的时候我们会维护一个共享的状态这个状态值可能会在每隔线程中都一样也有可能是每个线程都有自己的状态JMH为我们提供了状态的支持。该注解只能用来标注在类上因为类作为一个属性的载体。State的状态值主要有以下几种 Scope.Benchmark 该状态的意思是会在所有的Benchmark的工作线程中共享变量内容。 Scope.Group 同一个Group的线程可以享有同样的变量 Scope.Thread 每个线程都享有一份变量的副本线程之间对于变量的修改不会相互影响 很多参数的默认值在该类org.openjdk.jmh.runner.Defaults State(Scope.Benchmark) Fork(value 1) public class ParseEngineBenchmark {Param({128, 256, 512,1024, 2048, 4096})private int length;private byte[] content;private byte[] zlibEncode;private byte[] zstdEncode;Setup(Level.Trial)public void prepare() throws IOException {content RandomStringUtils.randomAlphanumeric(length).getBytes();zlibEncodeZipUtils.compress(content);zstdEncodeZstd.compress(content);}TearDown(Level.Trial)public void destroy() {}BenchmarkBenchmarkMode({Mode.Throughput})OutputTimeUnit(TimeUnit.SECONDS)Warmup(iterations 2, time 1)Measurement(iterations 10, time 1)public byte[] handleZlibCompress() throws IOException {return ZipUtils.compress(content);}public static void main(String[] args) {Options opt new OptionsBuilder().include(ParseEngineBenchmark.class.getSimpleName()).result(result.json)//数据json的跑分结果.resultFormat(ResultFormatType.JSON).output(run.log)//输出打印日志.build();try {new Runner(opt).run();} catch (RunnerException e) {e.printStackTrace();}}}JMH 可视化除此以外如果你想将测试结果以图表的形式可视化可以试下这些网站 Benchmark (length) Mode Cnt Score Error Units ParseEngineBenchmark.handleCrypto 256 thrpt 10 13042155.579 ± 112897.883 ops/s ParseEngineBenchmark.handleUnCrypto 256 thrpt 10 11870482.143 ± 41689.274 ops/s ParseEngineBenchmark.handleZlibCompress 256 thrpt 10 105607.717 ± 7477.906 ops/s ParseEngineBenchmark.handleZlibUnCompress 256 thrpt 10 298697.795 ± 67420.169 ops/s ParseEngineBenchmark.handleZstdCompress 256 thrpt 10 304541.271 ± 2214.547 ops/s ParseEngineBenchmark.handleZstdUnCompress 256 thrpt 10 669493.645 ± 4759.451 ops/s其中 Mode: thrpt吞吐量也可以理解为tps、ops avgt每次请求的平均耗时 sample请求样本数量这次压测一共发了多少个请求 ssSingleShot除去冷启动一共执行了多少轮 Cnt、执行次数 Score:得分 Units 单位 Error 误差或者偏差 如果你配置了输出文件比如我上面的 resul.json 但是你打开是看不懂的可以借助两个网站把文件上传进行分析 JMH Visual Chart这个项目目前处在实验状态并没有对所有可能的基准测试结果进行验证目前它能够比较不同参数下不同方法的性能未来可以无限的扩展JSON to Chart的转化方法从而支持更多的图表 JMH Visualizer它是一个功能齐全的可视化项目只是少了我想要的图表罢了。 进阶 JMH 陷阱在使用 JMH 的过程中一定要避免一些陷阱。比如 JIT 优化中的死码消除比如以下代码Benchmark public void testStringAdd(Blackhole blackhole) { String a “”; for (int i 0; i length; i) { a i; } }JVM 可能会认为变量 a 从来没有使用过从而进行优化把整个方法内部代码移除掉这就会影响测试结果。JMH 提供了两种方式避免这种问题一种是将这个变量作为方法返回值 return a一种是通过 Blackhole 的 consume 来避免 JIT 的优化消除。其他陷阱还有常量折叠与常量传播、永远不要在测试中写循环、使用 Fork 隔离多个测试方法、方法内联、伪共享与缓存行、分支预测、多线程测试等感兴趣的可以阅读 https://github.com/lexburner/JMH-samples 了解全部的陷阱。 Q1: gradle Unable to find the resource: /META-INF/BenchmarkList 可能是导入的jar包方式不正常 jmhCompile projectcompile org.openjdk.jmh:jmh-core:1.24compile org.openjdk.jmh:jmh-generator-annprocess:1.24改成 jmhCompile projectjmhCompile org.openjdk.jmh:jmh-core:1.24jmhAnnotationProcessor org.openjdk.jmh:jmh-generator-annprocess:1.24Q2: 不能用调试模式否则会报以下异常 # Run progress: 0.00% complete, ETA 00:00:24 # Fork: 1 of 1 ERROR: transport error 202: connect failed: Connection refused ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750] forked VM failed with exit code 2 stdout last20 lines /stdout stderr last20 lines ERROR: transport error 202: connect failed: Connection refused ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750] /stderrQ3: 为什么每次同样的样本同样的代码jmh测试结果会有差异有时候波动还挺大 最好测试机上啥都不跑微信、浏览器这些都要关掉intel会有睿频加速技术可以理解为自动超频jmh的线程数超过CPU核数也会稳定一些
http://www.w-s-a.com/news/272939/

相关文章:

  • 网站群建设费用科技通信网站模板下载
  • 网站开发的流程是怎样的自己做自媒体在哪个网站比较好
  • 网站的html代码在哪网页线上开发制作
  • 免费商用自媒体图片网站做网站好的公司有哪些
  • 阿雷网站建设公司中国建筑考试网官网首页
  • 厦门网站制作网页无法跳转到建设银行网站
  • 怎么建设自己网站简述网页布局的几种方法
  • 软文营销文案100篇如何优化搜索引擎的搜索功能
  • 做网站创意杭州家具网站建设方案
  • 福州seo网站推广优化乐清建网站
  • 莆田cms建站模板简述网站设计流程
  • 班级网站建设组织机构建设注册中心网站首页
  • 即墨网站建设地址怎么在文档中做网站一点就开
  • 做网站联系方式互联网行业分析
  • 杭州网站建设索q479185700高淳网站建设
  • 有什么做任务拿钱的网站精准的搜索引擎优化
  • 洛阳有建社网站的吗电力建设工程质量监督总网站
  • 网站404报错热水器网站建设 中企动力
  • 网站降权恢复淘宝 网站建设
  • 安州区建设局网站台州优秀关键词优化
  • 网站假设教程湖南微信管理系统
  • 网站备案属于公司哪一块哪个网站是专门做封面素材
  • 广州个人做网站内江建设局网站
  • 网站开发 360百科大连哪里有手机自适应网站建设维护
  • 如何查网站pv网站功防教程
  • 建设银行网站信息补充营销推广的作用
  • 网站见建设seo外链自动群发工具
  • 在境外做网站网站团购网站seo
  • 进网站后台加什么360推广 网站建设
  • 网站备案号码专做网站漏扫的工具