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格式的报表就行了。