Hi, it seems that ROOT will load all content into memory when drawing using RDataFrame::Histo1D(). And thus not able to handle larger-than-memory datasets.
For example, this will use up all my RAM and cause an OOM. (large.root is ~60GB and I have 32G of RAM)
rdf = ROOT::RDataFrame("large_tree", "large.root");
h1 = rdf.Histo1D("eV");
h1->Draw();
But using the TFile/TTree interface won’t.
f = new TFile("large.root");
t = f.Get<TTree>("large_tree");
t->Draw("eV");
Is there a way to achieve the performance of the old interface while using RDataFrame?
ROOT Version: 6.18/02
Platform: Linux x64
Compiler: GCC