.PHONY: cxx-read-data go-read-data bench all ROOTFLAGS := `root-config --libs --cflags` CXXFLAGS := -O2 GO := go1.9rc2 TIMEFLAGS := "real=%e user=%U sys=%S CPU=%P MaxRSS=%M I/O=%I/%O" all: gen-data cxx-read-data go-read-data gen-data: gen-data.cxx $(CXX) -o gen-data $(ROOTFLAGS) gen-data.cxx cxx-read-data: read-data.cxx $(CXX) -o cxx-read-data $(CXXFLAGS) $(ROOTFLAGS) read-data.cxx go-read-data: read-data.go $(GO) build -o go-read-data read-data.go bench: cxx-read-data go-read-data @echo "" @echo "" @echo "=== NO COMPRESSION ===" @echo "" @echo "=== ROOT ===" @time -f $(TIMEFLAGS) ./cxx-read-data f64s-no-compress.root @time -f $(TIMEFLAGS) ./cxx-read-data f64s-no-compress.root @time -f $(TIMEFLAGS) ./cxx-read-data f64s-no-compress.root @time -f $(TIMEFLAGS) ./cxx-read-data f64s-no-compress.root @echo "" @echo "=== go-hep/rootio ===" @time -f $(TIMEFLAGS) ./go-read-data f64s-no-compress.root @time -f $(TIMEFLAGS) ./go-read-data f64s-no-compress.root @time -f $(TIMEFLAGS) ./go-read-data f64s-no-compress.root @time -f $(TIMEFLAGS) ./go-read-data f64s-no-compress.root @echo "" @echo "" @echo "=== WITH COMPRESSION ===" @echo "" @echo "=== ROOT ===" @time -f $(TIMEFLAGS) ./cxx-read-data f64s-default-compress.root @time -f $(TIMEFLAGS) ./cxx-read-data f64s-default-compress.root @time -f $(TIMEFLAGS) ./cxx-read-data f64s-default-compress.root @time -f $(TIMEFLAGS) ./cxx-read-data f64s-default-compress.root @echo "" @echo "=== go-hep/rootio ===" @time -f $(TIMEFLAGS) ./go-read-data f64s-default-compress.root @time -f $(TIMEFLAGS) ./go-read-data f64s-default-compress.root @time -f $(TIMEFLAGS) ./go-read-data f64s-default-compress.root @time -f $(TIMEFLAGS) ./go-read-data f64s-default-compress.root