Raw data output
Petr Stefan
ptr.stef at gmail.com
Wed Jul 13 14:13:52 UTC 2016
Hi Aleksey,
thanks for your feedback.
Dne 12.7.2016 v 21:58 Aleksey Shipilev napsal(a):
> *) Sign the OCA (http://openjdk.java.net/contribute/) as soon as
> possible -- processing takes time.
I did it today morning.
> *) No need for a separate JSON formatter. Keeping both non-raw and raw
> versions in sync would be a hassle, so let's just fix the current JSON
> formatter.
Sure, but I'd like to discuss the format. There are some options:
- Print the raw data the same way as it's now. For most of the
benchmarking modes the output remains the same, but for sample time mode
it has (big) disadvantage in output file size because of huge amount of
values (quite often repeated).
- Print the raw data as a pair of number and count. In JSON it should
look like "[ 4296.0, 129 ] ", eq. 129 times value of 4296.0. It's little
more space consuming for other modes, but for sample time it saves a lot.
- Print sample time mode differently than other modes. It's a little
inconsistent, but probably not too much. Sample time mode will be
printed in compact way, others will be printed with current format. For
this, we'd need to split "rawData" key into two new keys like
"rawDataSimple" and "rawDataCombined" and say that actual data are in
one of this key, but not both (in which one depends on benchmarking mode).
These are basic options I've thought of. I'd probably pick second one.
Maybe there is even better solution?
Another question - is it useful to have rawData values divided into
multiple BenchmarkResult section? I'm talking about
"rawData" : [
[
942.0,
384.0
],
[
351.0,
781.0
],
What if all the values were just in single JSON array as in
"rawData" : [
942.0,
384.0,
351.0,
781.0,
It would be more compact and disk space saving. Maybe it is useful for
something, but I don't see it now. However, preserve this formatting is
quite easy.
> *) We would need to be able to trim/disable raw_data printing in JSON
> output. The common way in JMH is to use system properties. Something
> like boolean "jmh.json.rawData" would be fine.
Default will be off?
Have a nice time. Cheers,
Petr
More information about the jmh-dev
mailing list