SPECjvm2008测试用例列表(附快速上手指南)

SPECjvm2008是一个观测JRE运行性能的基准测试套件。它的测试用例涵盖了大部分java基础应用场景,是架构选型和VM性能评测不可多得的利器。

SPECjvm2008测试用例列表:(单位 ops/m 每分钟操作数)
http://docs.google.com/View?id=dtbhrmv_661cg8j92cm

快速上手指南

1,下载SPECjvm2008测试套件。

http://www.spec.org/download.html

2,安装。
下载下来是一个swt的安装程序,它负责解压jar包里的目录结构到指定目录。
这里需要注意的是,如果你想在linux纯字符界面下运行测试套件,需要在windows下解压完后,打包上传。

3,调试。
安装目录下有一个脚本,linux对应的是run-specjvm.sh,windows对应的是 run-specjvm.cmd
执行如下命令,用以测试安装或环境是否ok。
./run-specjvm.sh startup.helloworld -ikv

startup.helloworld 是测试helloworld程序的启动时间,选择这个测试用例是考虑到运行速度比较快。
-ikv的意思是跳过签名检查,那个过程有点慢。

4,配置。
默认情况,我们只需要修改安装目录下 props/specjvm.properties 和 props/specjvm.reporter.properites 这两个配置文件就行了。

specjvm.properties主要负责对整个套件的运行进行调整。比如,指定需要运行的测试用例,测试迭代次数,每个用例跑完是否要GC等。
specjvm.reporter.properites主要用来丰富报表输出内容,一般是一些无法通过自动检测得到的环境信息。比如,主机的内存型号,cpu逻辑个数,主板提供商等。

官方对specjvm.properties的内容是遵循COC原则设计的。所以,我们只需要修改特定的参数就可以了。
下面是我测试时修改的一些参数。

specjvm.additional.properties.file=props/specjvm.reporter.properties // 指定报表配置文件路径
specjvm.benchmark.analyzer.names=HeapMemoryFreeAnalyzer HeapMemoryTotalAnalyzer // heap分析器
specjvm.home.dir=/home/admin/SPECjvm2008 // SPEC_HOME路径
specjvm.iteration.time=240s // 迭代时长
specjvm.startup.jvm_options=-Xms1024m -Xmx1024m -XX:+UseConcMarkSweepGC // JVM switches

specjvm.reporter.properties这个配置文件就不多做介绍了,你甚至可以不做任何修改。

5,启动。
./run-specjvm.sh -peak -pf props/specjvm.properties

-peak
官方提供了三种基准测试方式,常用的有两种,一种是base,一种是peak,区别在于前者是不允许做任何vm参数调整。
后者可以添加vm调优参数。

在这篇指南里,由于我们添加了vm options,如下
specjvm.startup.jvm_options=-Xms1024m -Xmx1024m -XX:+UseConcMarkSweepGC // JVM switches
所以,选择的是peak方式。

如果选了base,又修改了vm options怎么办?
套件在运行时,会给你警告。并且,在你的测试结果上会显示大大的一行 Run is not compliant.

另外,如果你想将测试结果提交官方,某些参数必须符合官方要求,否则同样是警告。

哪些参数有官方要求?
默认配置文件 props/specjvm.properties 里,注释了 Permitted for 的就是。

-pf
指定配置文件路径,默认使用的是安装目录下的 props/specjvm.properties,但是指定后心里踏实一点。
(日志里会打印出使用文件的路径)

6,图形报表。
报表默认的输出路径是 安装目录的 results 目录下。内部根据你执行测试套件的顺序,又分了不同的子文件夹。
进入某个子文件夹,查看html格式的报表就行了。

测试结果样例

http://kenwublog.com/docs/SPECjvm2008.014/SPECjvm2008.014.html

参考:

http://www.spec.org/jvm2008/docs/UserGuide.html

http://www.spec.org/jvm2008/docs/benchmarks/index.html

http://www.spec.org/jvm2008/docs/FAQ.html

http://www.spec.org/jvm2008/docs/RunRules.html

作者:Ken Wu 原文链接:http://kenwublog.com/specjvm2008-testcase-list

2009/10/06 | Posted in JVM
No comments yet.

Leave a comment

Attention: Java syntax highlighting is enable. For example: <pre lang="java"> class A {} </pre>