Skip to content
Snippets Groups Projects
Florian Uhlig's avatar
Administrator authored
Add parameters to allow writing and reading from the executable.
Add two missing header files fro ROOT versions >= 6.34.00.
92899ca2
History

Meassure IO performance

The project meassures the IO performance to serialize objects to files using several serialization methods. The following four serialization methods are compared.

  1. Storing the data objects in ROOTs TClonesArryas which is a branch in a TTree.
  2. Storing the data objects in a std::vector which is a branch in a TTree.
  3. Storing the data objects in a std::vector which ar part of a RNTuple model.
  4. Storing the data objects in a std::vector which is serialized using the Boost serialization functionality.

The common code of each binary loops over 1000000 events and creates a random number of detector points for each event. The number of events per event ranges from 10 to 30. Each DetectorPoint is created with random values.

The code is compiled since the Boost serialization can't be executed from a ROOT macro. All other three implementations can also be executed from a ROOT macro.

Compilation

The build system is implemented using CMake. To generate Makefiles one needs to execute CMake with the following parameters.

cmake -S . -B build \
-DBoost_ROOT=<Boost installation dircectory> \
-DRoot_ROOT=<ROOT installation directory>

The actual compilation afer a succesful generation is started by

cmake --build build

Execution

The generated binaries are in the subdirctor build and can be executed directly.

cd build
makeTree

To execute all binaries one can also use the following command

cmake --build build --target test

which will only show if the execution of the executable suceeds together with the runtime for the execution.