ARM服务器测试大纲中指定了要使用specjvm测试Java虚拟机性能,所以就上网找开源的测试套。
简介
SPECjvm2008(java虚拟机基准测试)是用来测试java运行环境(JRE)性能的基准测试套件,其中包含几个核心的JAVA功能实现的基准测试程序。该测试套测试了处理器和内存子系统的性能,但是对文件系统的I/O依赖度很低,并且不包含机器间的网路系统。SPECjvm2008工作负载测试模仿的是各种常见的通用应用计算场景,这些基准测试可以测试测试机器上的JAVA虚拟机性能。
下载
下载主页:https://www.spec.org/download.html
安装
打开终端,在下载目录执行命令:
image.pngjava -jar SPECjvm2008_1_01_setup.jar -i console
简介说明
image.png
许可协议
image.png
许可协议输入“是”就行。用户可以指定一个安装目录
image.png
一路enter即可。
配置
安装完成之后,打开文件/etc/profile.在文件最后添加下面的配置项
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-arm64/
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:/lib.dt.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
打开终端,执行命令:source /etc/profile。进入安装目录/home/deepin/SPECjvm2008.执行一下测试程序,查看配置是否正常:
./run-specjvm.sh startup.helloworld -ikv
执行成功
image.png
开始测试
上面的helloworld测试程序能够跑通的话,说明配置没有问题,那么就可以进行全量测试了。
执行下面的命令:
java -jar SPECjvm2008.jar
测试用例说明
测试项 | 测试说明 |
---|---|
startup.helloworld | 测试helloworld程序从运行开始到结束所需的时间 |
startup.compiler.compiler | 普通java编译所需要的时间 |
startup.compiler.sunflow | 编译sunflow图像渲染引擎所需要的时间 |
startup.compress | 测试压缩程序,单次压缩所需的时间 |
startup.crypto.aes | 测试AES/DES加密算法,单次加解密所需的时间输入数据长度为 100 bytes , 713KB |
startup.crypto.rsa | 测试RSA加密算法,单次加解密需要的时间输入数据长度为 100 bytes, 16KB |
startup.crypto.signverify | 测试单次使用MD5withRSA, SHA1withRSA, SHA1withDSA, SHA256withRSA来签名,识别所需要的时间。输入数据长度为 1KB, 65KB, 1MB |
startup.mpegaudio | 单次mpeg音频解码所需的时间 |
startup.scimark.fft | 单次快速傅立叶变换所需的时间 |
startup.scimark.lu | 单次LU分解所需的时间 |
startup.scimark.monte_carlo | 单次运行蒙特卡罗算法所需的时间 |
startup.scimark.sor | 单次运行jacobi逐次超松弛迭代法所需的时间 |
startup.scimark.sparse | 单次稀疏矩阵乘积所需的时间 |
startup.serial | 单次通过socket传输java序列化对象到对端反序列化完成所需的时间(基于jboss serialization benchmark) |
startup.sunflow | 单次图片渲染处理所需的时间 |
startup.xml.transform | 单次xml转换所需的时间,转换包括dom,sax,stream方式 |
startup.xml.validation | 单次xml schema校验所需的时间 |
compiler.compiler | 在规定时间内,多线程迭代测试普通java编译,得出 ops/m |
compiler.sunflow | 在规定时间内,多线程迭代测试sunflow图像渲染,得出 ops/m |
compress | 在规定时间内,多线程迭代测试压缩,得出 ops/m |
crypto.aes | 在规定时间内,多线程迭代测试AES/DES加解密算法,得出 ops/m |
crypto.rsa | 在规定时间内,多线程迭代测试RSA加解密算法,得出 ops/m |
crypto.signverify | 在规定时间内,多线程迭代测试使用MD5withRSA, SHA1withRSA, SHA1withDSA, SHA256withRSA来签名,识别,得出 ops/m |
derby | 在规定时间内,迭代测试数据库相关逻辑,包括数据库锁,BigDecimal计算等,最后得出 ops/m |
mpegaudio | 在规定时间内,多线程迭代mpeg音频解码,得出 ops/m |
scimark.fft.large | 在规定时间内,多线程迭代测试快速傅立叶变换,使用32M大数据集,最后得出 ops/m |
scimark.lu.large | 在规定时间内,多线程迭代测试LU分解,使用32M大数据集,最后得出 ops/m |
scimark.sor.large | 在规定时间内,多线程迭代测试jacobi逐次超松弛迭代法,使用32M大数据集,最后得出 ops/m |
scimark.sparse.large | 在规定时间内,多线程迭代测试稀疏矩阵乘积,使用32M大数据集,最后得出 ops/m |
scimark.fft.small | 在规定时间内,多线程迭代测试快速傅立叶变换,使用512K小数据集,最后得出 ops/m |
scimark.lu.small | 在规定时间内,多线程迭代测试LU分解,使用512KB小数据集,最后得出 ops/m |
scimark.sor.small | 在规定时间内,多线程迭代测试jacobi逐次超松弛迭代法,使用512KB小数据集,最后得出 ops/m |
scimark.sparse.small | 在规定时间内,多线程迭代测试稀疏矩阵乘积,使用512KB小数据集,最后得出 ops/m |
scimark.monte_carlo | 在规定时间内,多线程迭代测试蒙特卡罗算法,得出 ops/m |
serial | 在规定时间内,多线程迭代测试通过socket传输java序列化对象到对端反序列化(基于jboss serialization benchmark),得出 ops/m |
sunflow | 在规定时间内,利用sunflow多线程迭代测试图片渲染,得出 ops/m |
xml.transform | 在规定时间内,多线程迭代测试xml转换,得出 ops/m |
xml.validation | 在规定时间内,多线程迭代测试xml schema验证,得出 ops/m |
网友评论