go-hep.org/x/hep@v0.38.1/xrootd/bench_test.go (about) 1 // Copyright ©2022 The go-hep Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package xrootd_test 6 7 import ( 8 "testing" 9 10 "go-hep.org/x/hep/groot" 11 _ "go-hep.org/x/hep/groot/riofs/plugin/xrootd" 12 "go-hep.org/x/hep/groot/rtree" 13 ) 14 15 func BenchmarkRead(b *testing.B) { 16 const ( 17 fname = "root://ccxrootdgotest.in2p3.fr:9001/tmp/rootio/testdata/SMHiggsToZZTo4L.root" 18 tname = "Events" 19 ) 20 21 f, err := groot.Open(fname) 22 if err != nil { 23 b.Fatal(err) 24 } 25 defer f.Close() 26 27 o, err := f.Get(tname) 28 if err != nil { 29 b.Fatal(err) 30 } 31 32 tree := o.(rtree.Tree) 33 read := func(tree rtree.Tree) error { 34 r, err := rtree.NewReader(tree, rtree.NewReadVars(tree)) 35 if err != nil { 36 b.Fatal(err) 37 } 38 defer r.Close() 39 40 return r.Read(func(rctx rtree.RCtx) error { 41 _ = rctx.Entry 42 return nil 43 }) 44 } 45 46 b.ResetTimer() 47 for i := 0; i < b.N; i++ { 48 err := read(tree) 49 if err != nil { 50 b.Fatal(err) 51 } 52 } 53 }