hep
hep copied to clipboard
rootio: implement fast BulkIO
It would be great to implement fast BulkIO access for rootio
.
this can be done in a few lines in python:
- https://github.com/scikit-hep/uproot
with quite the performances boost:
- https://github.com/scikit-hep/uproot#performance
The first comparison is time spent opening the file and loading the TTree. This is relevant if you are executing a procedure on a large set of files (TChain). uproot is about 16 times faster.
Time to open file | |
---|---|
C++ ROOT | 0.50 sec |
uproot | 0.03 sec |
Next is the time to read nearly all branches, exactly the same as the test on page 11 of Jakob's talk. uproot is about 5 times faster.
Time to read file | Event rate | Data rate | |
---|---|---|---|
C++ ROOT | 4.62 sec | 1.9 MHz | 230 MB/sec |
uproot | 0.93 sec | 9.2 MHz | 1160 MB/sec |
Finally, we load only one branch (replacing TTree::GetEntry
with TBranch::GetEntry
in C++ ROOT to avoid a performance penalty). uproot is about 4 times faster.
Time to read 1 branch | Event rate | Data rate | |
---|---|---|---|
C++ ROOT | 0.256 sec | 33 MHz | 260 MB/sec |
uproot | 0.064 sec | 133 MHz | 1020 MB/sec |
+1