我目前正在尝试使用谷歌代码项目 wiki 上提供的少数文档来解决 Caliper 问题。在设法运行了一些基准测试之后,我现在想将结果发布到网上,这样我可以比在命令行上更清楚地阅读它们。
我按照 wiki 上的说明访问了 microbenchmarks.appspot.com 网站并将 API 密钥复制到我的“.caliperrc”文件中。作为旁注,这个网页告诉我“.caliperrc”文件应该是“在 Windows 上:C:\.caliperrc”,但实际上,Caliper 在 Windows 上的 %HOME%\.caliperrc 中搜索(至少对于七):c:\users\%login%\.caliperrc。
有了这个,Caliper 确实尝试上传结果......但它失败并显示消息“发布到http://microbenchmarks.appspot.com:80/run/ failed: Internal Server Error”。当我更改 Runner.run 方法的代码以便它也打印 RuntimeException 的堆栈跟踪时,它如下所示(%APIKey% 在我的 .caliperrc 文件中存在“APIKey”的字符串):
java.lang.RuntimeException: Posting to http://microbenchmarks.appspot.com:80/run/ failed.
at com.google.caliper.Runner.postResults(Runner.java:206)
at com.google.caliper.Runner.run(Runner.java:96)
at com.google.caliper.Runner.main(Runner.java:405)
at com.google.caliper.Runner.main(Runner.java:417)
at collections.ArrayListBenchmark.main(ArrayListBenchmark.java:119)
Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: http://microbenchmarks.appspot.com:80/run/%APIKey%/collections.ArrayListBenchmark
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$6.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at com.google.caliper.Runner.postResults(Runner.java:200)
... 4 more
Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: http://microbenchmarks.appspot.com:80/run/%APIKey%/collections.ArrayListBenchmark
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.HttpURLConnection.getResponseCode(Unknown Source)
at com.google.caliper.Runner.postResults(Runner.java:188)
... 4 more
我错过了我应该遵循的步骤吗?如果重要的话,我在 Windows 7 64 位上使用以下 Java 版本直接从 svn 运行 Caliper 源代码:
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode)