hi there,
I am very happy to announce the release of Go-HEP@v0.27.0
:
You can easily download standalone binaries (i.e. you don’t need Go installed on your machine) for selected platform+OS combinations from https://go-hep.org/dist (e.g. choosing the latest version).
This release has seen quite a few performance improvements in the reading ROOT data area.
groot
can now read data faster than ROOT in the few tests I was able to construct and assemble:
name time/op
ReadCMS/GoHEP/Zlib-8 19.2s ± 1%
ReadCMS/ROOT-TreeBranch/Zlib-8 37.5s ± 1%
ReadCMS/ROOT-TreeReader/Zlib-8 26.1s ± 3%
ReadCMS/ROOT-TreeReaderMT/Zlib-8 25.6s ± 5% (ROOT::EnableImplicitMT())
ReadScalar/GoHEP/None-8 737ms ± 3%
ReadScalar/GoHEP/LZ4-8 769ms ± 3%
ReadScalar/GoHEP/Zlib-8 1.33s ± 1%
ReadScalar/ROOT-TreeBranch/None-8 1.22s ± 3%
ReadScalar/ROOT-TreeBranch/LZ4-8 1.35s ± 3%
ReadScalar/ROOT-TreeBranch/Zlib-8 2.47s ± 1%
ReadScalar/ROOT-TreeReader/None-8 1.43s ± 5%
ReadScalar/ROOT-TreeReader/LZ4-8 1.57s ± 2%
ReadScalar/ROOT-TreeReader/Zlib-8 2.69s ± 1%
The release announcement has some more details about it, but here is the repo that has all the nitty-gritty details:
Happy to get any feedback about ways to improve these benchmarks.
(I tried to be fair (using options I knew about in ROOT) but also tried to use relatively common defaults for ROOT, as a “normal” user would)
and I also released root-split
, a command that splits ROOT Trees into multiple files+tree:
finally, for the eye candy, a new HStack
plotter has been implemented:
cheers,
-s