The project concerns various C++11 features - their performance and reliability. The report summarizes the tesults from four micro-benchmarks designed for this project and run with three different compilers (GCC, ICC, Clang) and tries to make an evaluation based on the results.
As C++11 gained almost full support by compilers, it is interesting to see whether we can leverage some of the features to improve performance and reliability of C++ code. This work is focused on four selected problems: time measurement techniques, for-loops efficiency, asychronuous tasks and parallel mode of STL algorithms. For each of them a micro-benchmark is made. All the benchmarks are fully automatized to generate results from running binaries compiled by three compilers: GCC, ICC and Clang with -O2, -O3 and -Ofast options. In order to evaluate vectorization and multithreading, profiling tools such as perf and Intel Vtune are used.