首页 > 其他分享 >开源jvm性能基准测试工具之renaissance

开源jvm性能基准测试工具之renaissance

时间:2023-07-23 20:14:42浏览次数:41  
标签:repetitions jvm license Supported renaissance JVM 测试工具 distribution MIT

JVM标准的性能测试工具是SPECjbb 2015,

SPECjbb2015是SPEC组织的一个用于评估服务器端Java应用性能的基准测试程序,其官方主页为 https://www.spec.org/jbb2015 。在其之前还有SPECjbb2013、SPECjbb2005等版本。该基准测试主要测试Java虚拟机(JVM)、JIT编译器、垃圾回收、Java线程等方面,也可对CPU、缓存、内存结构的性能进行度量。

SPECjbb2015既是CPU密集型也是内存密集型的基准测试程序,它利用Java应用能够比较真实地反映Java程序在某个系统上的运行性能。

只不过它是商业工具,且没有试用版,包括JEP 333 ZGC都是用specjbb 2015测的。最近为了对比下jdk 8,jdk 11以及jdk 17下各个GC的性能,找到了一个可参考的性能测试工具Renaissance Benchmark,虽然生成的报告比较简单,但覆盖大数据、并发、web等方面,测试还是比较有参考性。

[zjh@hs-10-20-30-193 ~]$ time java -Xms16g -Xmx16g -XX:+UseG1GC -XX:MaxGCPauseMillis=5 -jar renaissance-mit-0.14.1.jar -r 3 dec-tree
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
NOTE: 'dec-tree' benchmark uses Spark local executor with 6 (out of 32) threads.
====== dec-tree (apache-spark) [default], iteration 0 started ======
GC before operation: completed in 41.340 ms, heap usage 128.745 MB -> 42.149 MB.
====== dec-tree (apache-spark) [default], iteration 0 completed (3485.129 ms) ======
====== dec-tree (apache-spark) [default], iteration 1 started ======
GC before operation: completed in 61.878 ms, heap usage 833.410 MB -> 69.500 MB.
====== dec-tree (apache-spark) [default], iteration 1 completed (969.746 ms) ======
====== dec-tree (apache-spark) [default], iteration 2 started ======
GC before operation: completed in 59.005 ms, heap usage 643.616 MB -> 91.783 MB.
====== dec-tree (apache-spark) [default], iteration 2 completed (740.158 ms) ======

real 0m9.893s
user 0m37.843s
sys 0m2.825s

覆盖的用例包括:

List of benchmarks

The following is the complete list of benchmarks, separated into groups.

apache-spark

  • als - Runs the ALS algorithm from the Spark ML library.
    Default repetitions: 30; APACHE2 license, MIT distribution; Supported JVM: 1.8 and later

  • chi-square - Runs the chi-square test from Spark MLlib.
    Default repetitions: 60; APACHE2 license, MIT distribution; Supported JVM: 1.8 and later

  • dec-tree - Runs the Random Forest algorithm from the Spark ML library.
    Default repetitions: 40; APACHE2 license, MIT distribution; Supported JVM: 1.8 and later

  • gauss-mix - Computes a Gaussian mixture model using expectation-maximization.
    Default repetitions: 40; APACHE2 license, MIT distribution; Supported JVM: 1.8 and later

  • log-regression - Runs the Logistic Regression algorithm from the Spark ML library.
    Default repetitions: 20; APACHE2 license, MIT distribution; Supported JVM: 1.8 and later

  • movie-lens - Recommends movies using the ALS algorithm.
    Default repetitions: 20; APACHE2 license, MIT distribution; Supported JVM: 1.8 and later

  • naive-bayes - Runs the multinomial Naive Bayes algorithm from the Spark ML library.
    Default repetitions: 30; APACHE2 license, MIT distribution; Supported JVM: 1.8 and later

  • page-rank - Runs a number of PageRank iterations, using RDDs.
    Default repetitions: 20; APACHE2 license, MIT distribution; Supported JVM: 1.8 and later

concurrency

  • akka-uct - Runs the Unbalanced Cobwebbed Tree actor workload in Akka.
    Default repetitions: 24; MIT license, MIT distribution; Supported JVM: 1.8 and later

  • fj-kmeans - Runs the k-means algorithm using the fork/join framework.
    Default repetitions: 30; APACHE2 license, MIT distribution; Supported JVM: 1.8 and later

  • reactors - Runs benchmarks inspired by the Savina microbenchmark workloads in a sequence on Reactors.IO.
    Default repetitions: 10; MIT license, MIT distribution; Supported JVM: 1.8 and later

database

  • db-shootout - Executes a shootout test using several in-memory databases.
    Default repetitions: 16; APACHE2 license, MIT distribution; Supported JVM: 1.8 - 11

  • neo4j-analytics - Executes Neo4J graph queries against a movie database.
    Default repetitions: 20; GPL3 license, GPL3 distribution; Supported JVM: 11 - 15

functional

  • future-genetic - Runs a genetic algorithm using the Jenetics library and futures.
    Default repetitions: 50; APACHE2 license, MIT distribution; Supported JVM: 1.8 and later

  • mnemonics - Solves the phone mnemonics problem using JDK streams.
    Default repetitions: 16; MIT license, MIT distribution; Supported JVM: 1.8 and later

  • par-mnemonics - Solves the phone mnemonics problem using parallel JDK streams.
    Default repetitions: 16; MIT license, MIT distribution; Supported JVM: 1.8 and later

  • rx-scrabble - Solves the Scrabble puzzle using the Rx streams.
    Default repetitions: 80; GPL2 license, GPL3 distribution; Supported JVM: 1.8 and later

  • scrabble - Solves the Scrabble puzzle using JDK Streams.
    Default repetitions: 50; GPL2 license, GPL3 distribution; Supported JVM: 1.8 and later

scala

  • dotty - Runs the Dotty compiler on a set of source code files.
    Default repetitions: 50; BSD3 license, MIT distribution; Supported JVM: 1.8 and later

  • philosophers - Solves a variant of the dining philosophers problem using ScalaSTM.
    Default repetitions: 30; BSD3 license, MIT distribution; Supported JVM: 1.8 and later

  • scala-doku - Solves Sudoku Puzzles using Scala collections.
    Default repetitions: 20; MIT license, MIT distribution; Supported JVM: 1.8 and later

  • scala-kmeans - Runs the K-Means algorithm using Scala collections.
    Default repetitions: 50; MIT license, MIT distribution; Supported JVM: 1.8 and later

  • scala-stm-bench7 - Runs the stmbench7 benchmark using ScalaSTM.
    Default repetitions: 60; BSD3, GPL2 license, GPL3 distribution; Supported JVM: 1.8 and later

web

  • finagle-chirper - Simulates a microblogging service using Twitter Finagle.
    Default repetitions: 90; APACHE2 license, MIT distribution; Supported JVM: 1.8 and later

  • finagle-http - Sends many small Finagle HTTP requests to a Finagle HTTP server and awaits response.
    Default repetitions: 12; APACHE2 license, MIT distribution; Supported JVM: 1.8 and later

The suite also contains a group of benchmarks intended solely for testing purposes:

dummy

  • dummy-empty - A dummy benchmark which only serves to test the harness.
    Default repetitions: 20; MIT license, MIT distribution; Supported JVM: 1.8 and later

  • dummy-failing - A dummy benchmark for testing the harness (fails during iteration).
    Default repetitions: 20; MIT license, MIT distribution; Supported JVM: 1.8 and later

  • dummy-param - A dummy benchmark for testing the harness (test configurable parameters).
    Default repetitions: 20; MIT license, MIT distribution; Supported JVM: 1.8 and later

  • dummy-setup-failing - A dummy benchmark for testing the harness (fails during setup).
    Default repetitions: 20; MIT license, MIT distribution; Supported JVM: 1.8 and later

  • dummy-teardown-failing - A dummy benchmark for testing the harness (fails during teardown).
    Default repetitions: 20; MIT license, MIT distribution; Supported JVM: 1.8 and later

  • dummy-validation-failing - A dummy benchmark for testing the harness (fails during validation).
    Default repetitions: 20; MIT license, MIT distribution; Supported JVM: 1.8 and later

  •  

spec jbb2015报告参考 https://blog.csdn.net/don_chiang709/article/details/100576653

https://www.spec.org/jbb2015/docs/userguide.pdf

https://renaissance.dev/resources/docs/renaissance-suite.pdf

标签:repetitions,jvm,license,Supported,renaissance,JVM,测试工具,distribution,MIT
From: https://www.cnblogs.com/lightdb/p/17575802.html

相关文章

  • Java虚拟机(JVM):第六幕:自动内存管理 - 选择合适的垃圾收集器
    前言:在虚拟机的世界里面,内置了很多的垃圾收集器,但并不是说最先进的就是最好的。有一句话说的好“因地制宜”;一、Epsilon收集器是一个无操作的收集器,但是贴切的来说是“自动内存管理子系统”。但是一个垃圾收集器的工作不仅仅只有垃圾收集,还负责堆的管理与布局、对象的分配、......
  • JVM狂
    狂神说笔记——JVM入门07JVM入门参考视频:B站狂神,写这个只是方便个人复习,怎么写是我自己的事,我能看懂就行,没要求非要让你看!白嫖还挑刺,是很没有风度的事情。希望做个有风度的“五好青年”!面试常见:请你谈谈你对JVM的理解?java8虚拟机和之前的变化更新?什么是OOM,什......
  • JVM运行时数据区之堆空间
    JVM运行时数据区之堆空间1.核心概述一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。堆区在JVM启动的时候即被创建,其空间大小也就确定了,是JVM管理的最大一块内存空间。《Java虚拟机规范》中对Java堆的描述是:所有的对象实例以及数组都应当在运行时分配在堆上。(The......
  • JVM虚拟机栈
    JVM虚拟机栈1.概述1.1背景由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令1.2概念JVM虚拟机栈是Java虚拟机中的一个重要组成部分,用......
  • 网络性能测试工具iperf3
    1.创建两个容器#创建第一个容器dockerrun-d--namecontainer1ubuntu:latestsleepinfinity#创建第二个容器dockerrun-d--namecontainer2ubuntu:latestsleepinfinity2.查找第一个容器的ip地址dockerinspectcontainer13.进入第一个容器,并安装iperf3。......
  • 基准测试工具 --- BenchmarkDotNet
    介绍今天介绍一个非常强大的基于.Net的基准测试工具BenchmarkDotNet。BenchmarkDotNet已经被14300多个项目采用,包括非常多的知名开源项目,例如dotnet/performance(.Net所有运行时的基准测试项目)dotnet/runtime(.Net运行时库),Roslyn(c#和VisualBasic编译器),Mono、ASP.NET......
  • 基准测试工具 --- BenchmarkDotNet
    介绍今天介绍一个非常强大的基于.Net的基准测试工具BenchmarkDotNet。BenchmarkDotNet已经被14300多个项目采用,包括非常多的知名开源项目,例如dotnet/performance(.Net所有运行时的基准测试项目)dotnet/runtime(.Net运行时库),Roslyn(c#和VisualBasic编译器),Mono、ASP.NET......
  • 使用spring boot压测查看机器cpu内存jvm
    使用SpringBoot压测机器的CPU、内存和JVM在这篇文章中,我将向你展示如何使用SpringBoot来压测机器的CPU、内存和JVM。这将帮助你了解应用程序在不同负载下的性能表现,并帮助你进行性能调优。下面是整个过程的步骤概览:步骤操作1创建一个SpringBoot项目2添加压力......
  • 想快速上手性能测试,测试工具不会用?试试RunnerGo!简单易上手
    当前,性能测试已经是一名软件测试工程师必须要了解,甚至熟练使用的一项技能了,在工作时可能每次发版都要跑一遍性能,跑一遍自动化。性能测试入门容易,深入则需要太多的知识量,今天这篇文章给大家带来:怎么入门性能测试,怎么样去深入性能测试。突然让做性能测试怎么办?日常工作中,项目改造或项......
  • java正则表达式在线测试工具
    Java正则表达式在线测试工具实现流程在实现"Java正则表达式在线测试工具"的过程中,我们可以采用以下步骤:步骤描述步骤1创建GUI窗口步骤2添加正则表达式输入框和测试字符串输入框步骤3添加测试按钮,用于触发正则表达式测试步骤4对测试结果进行展示我们将......