Штангенциркуль: как публиковать результаты онлайн?

В настоящее время я пытаюсь разобраться с Caliper с помощью небольшой документации, доступной в вики проекта кода Google. Мне удалось запустить несколько тестов, и теперь я хотел бы опубликовать результаты в Интернете, чтобы я мог читать их немного более четко, чем в командной строке.

Я следовал инструкциям в вики, зашел на сайт microbenchmarks.appspot.com и скопировал ключ API в свой файл ".caliperrc". В качестве примечания, эта веб-страница сообщает мне, что файл «.caliperrc» должен быть «в Windows: C: \. Caliperrc», но на самом деле Caliper выполняет поиск в% HOME% \. Caliperrc, который находится в Windows (по крайней мере, для семь): c: \ users \% login% \. caliperrc.

При этом Caliper действительно пытается загрузить результаты ... но не получает сообщения "Публикация в http://microbenchmarks.appspot.com:80/run/ не удалось: внутренняя ошибка сервера ». Когда я изменяю код метода 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-битный исходный код Caliper прямо из svn, используя следующую версию Java:

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)

person Kellindil    schedule 29.01.2011    source источник
comment
Странный. Содержит ли ваш файл .caliperrc такое значение, состоящее из 32 шестнадцатеричных цифр? apiKey: 6c3787f0-6d59-6234-8090-63aa0f200d71   -  person Jesse Wilson    schedule 30.01.2011


Ответы (1)


Я сообщил об этом как о ошибке 113. В качестве (неудачного) обходного пути, пока это не будет исправлено, вам следует запустить JVM в локали США. В вашем основном методе вызовите Locale.setDefault(Locale.US).

person Jesse Wilson    schedule 30.01.2011
comment
Справа от отметки ... Установка локали по умолчанию на Locale.US сделала свое дело. Теперь мне нужно только найти, как удалить результат, который был загружен (это фиктивный результат, который я использовал для тестирования загрузки :). Большое спасибо за быстрый ответ. - person Kellindil; 30.01.2011
comment
К вашему сведению, это исправлено в Caliper. Если вы возьмете r284 или новее из SVN, вы получите .jar, который не требует взлома Locale. - person Jesse Wilson; 30.01.2011