# These values are ignored, they are here just to be referenced below. constants: num_bindings_column: &num_bindings_column dimension: "num_bindings" pretty_printer: format_string: "%s bindings" num_classes_column: &num_classes_column dimension: "num_classes" pretty_printer: format_string: "%s classes" compiler_name_row: &compiler_name_row dimension: "compiler_name" pretty_printer: format_string: "%s" tables: # Main Fruit benchmark tables - name: "Fruit compile time (single file)" benchmark_filter: name: "fruit_single_file_compile_time" additional_cmake_args: [] benchmark_generation_flags: [] columns: *num_bindings_column rows: *compiler_name_row results: dimension: "compile_time" unit: "seconds" - name: "Fruit compile time" benchmark_filter: name: "fruit_compile_time" additional_cmake_args: [] benchmark_generation_flags: [] columns: *num_classes_column rows: *compiler_name_row results: dimension: "compile_time" unit: "seconds" - name: "Fruit startup time" benchmark_filter: name: "fruit_startup_time" additional_cmake_args: [] benchmark_generation_flags: [] columns: *num_classes_column rows: *compiler_name_row results: dimension: "startup_time" unit: "seconds" - name: "Fruit per-request time" benchmark_filter: name: "fruit_run_time" additional_cmake_args: [] benchmark_generation_flags: [] columns: *num_classes_column rows: *compiler_name_row results: dimension: "Total per request" unit: "seconds" - name: "New/delete time" benchmark_filter: name: "new_delete_run_time" additional_cmake_args: [] benchmark_generation_flags: [] columns: *num_classes_column rows: *compiler_name_row results: dimension: "Total" unit: "seconds" # The following tables compare Fruit to Boost.DI or to no DI library - name: "Compile time (100 classes)" benchmark_filter: num_classes: 100 additional_cmake_args: [] benchmark_generation_flags: [] name: [ "fruit_compile_time", "boost_di_compile_time", "simple_di_compile_time", "simple_di_with_interfaces_compile_time", "simple_di_with_interfaces_and_new_delete_compile_time", ] columns: dimension: "name" pretty_printer: fixed_map: "fruit_compile_time": "Fruit" "boost_di_compile_time": "Boost.DI" "simple_di_compile_time": "Simple DI" "simple_di_with_interfaces_compile_time": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_compile_time": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "compile_time" unit: "seconds" - name: "Compile time (250 classes)" benchmark_filter: num_classes: 250 additional_cmake_args: [] benchmark_generation_flags: [] name: [ "fruit_compile_time", "boost_di_compile_time", "simple_di_compile_time", "simple_di_with_interfaces_compile_time", "simple_di_with_interfaces_and_new_delete_compile_time", ] columns: dimension: "name" pretty_printer: fixed_map: "fruit_compile_time": "Fruit" "boost_di_compile_time": "Boost.DI" "simple_di_compile_time": "Simple DI" "simple_di_with_interfaces_compile_time": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_compile_time": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "compile_time" unit: "seconds" - name: "Compile time (1000 classes)" benchmark_filter: num_classes: 1000 additional_cmake_args: [] benchmark_generation_flags: [] name: [ "fruit_compile_time", "boost_di_compile_time", "simple_di_compile_time", "simple_di_with_interfaces_compile_time", "simple_di_with_interfaces_and_new_delete_compile_time", ] columns: dimension: "name" pretty_printer: fixed_map: "fruit_compile_time": "Fruit" "boost_di_compile_time": "Boost.DI" "simple_di_compile_time": "Simple DI" "simple_di_with_interfaces_compile_time": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_compile_time": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "compile_time" unit: "seconds" - name: "Incremental compile time (100 classes)" benchmark_filter: num_classes: 100 additional_cmake_args: [] benchmark_generation_flags: [] name: [ "fruit_incremental_compile_time", "boost_di_incremental_compile_time", "simple_di_incremental_compile_time", "simple_di_with_interfaces_incremental_compile_time", "simple_di_with_interfaces_and_new_delete_incremental_compile_time", ] columns: dimension: "name" pretty_printer: fixed_map: "fruit_incremental_compile_time": "Fruit" "boost_di_incremental_compile_time": "Boost.DI" "simple_di_incremental_compile_time": "Simple DI" "simple_di_with_interfaces_incremental_compile_time": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_incremental_compile_time": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "incremental_compile_time" unit: "seconds" - name: "Incremental compile time (250 classes)" benchmark_filter: num_classes: 250 additional_cmake_args: [] benchmark_generation_flags: [] name: [ "fruit_incremental_compile_time", "boost_di_incremental_compile_time", "simple_di_incremental_compile_time", "simple_di_with_interfaces_incremental_compile_time", "simple_di_with_interfaces_and_new_delete_incremental_compile_time", ] columns: dimension: "name" pretty_printer: fixed_map: "fruit_incremental_compile_time": "Fruit" "boost_di_incremental_compile_time": "Boost.DI" "simple_di_incremental_compile_time": "Simple DI" "simple_di_with_interfaces_incremental_compile_time": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_incremental_compile_time": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "incremental_compile_time" unit: "seconds" - name: "Incremental compile time (1000 classes)" benchmark_filter: num_classes: 1000 additional_cmake_args: [] benchmark_generation_flags: [] name: [ "fruit_incremental_compile_time", "boost_di_incremental_compile_time", "simple_di_incremental_compile_time", "simple_di_with_interfaces_incremental_compile_time", "simple_di_with_interfaces_and_new_delete_incremental_compile_time", ] columns: dimension: "name" pretty_printer: fixed_map: "fruit_incremental_compile_time": "Fruit" "boost_di_incremental_compile_time": "Boost.DI" "simple_di_incremental_compile_time": "Simple DI" "simple_di_with_interfaces_incremental_compile_time": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_incremental_compile_time": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "incremental_compile_time" unit: "seconds" - name: "Compile memory (100 classes)" benchmark_filter: num_classes: 100 additional_cmake_args: [] benchmark_generation_flags: [] name: [ "fruit_compile_memory", "boost_di_compile_memory", "simple_di_compile_memory", "simple_di_with_interfaces_compile_memory", "simple_di_with_interfaces_and_new_delete_compile_memory", ] columns: dimension: "name" pretty_printer: fixed_map: "fruit_compile_memory": "Fruit" "boost_di_compile_memory": "Boost.DI" "simple_di_compile_memory": "Simple DI" "simple_di_with_interfaces_compile_memory": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_compile_memory": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "max_ram_usage" unit: "bytes" - name: "Compile memory (250 classes)" benchmark_filter: num_classes: 250 additional_cmake_args: [] benchmark_generation_flags: [] name: [ "fruit_compile_memory", "boost_di_compile_memory", "simple_di_compile_memory", "simple_di_with_interfaces_compile_memory", "simple_di_with_interfaces_and_new_delete_compile_memory", ] columns: dimension: "name" pretty_printer: fixed_map: "fruit_compile_memory": "Fruit" "boost_di_compile_memory": "Boost.DI" "simple_di_compile_memory": "Simple DI" "simple_di_with_interfaces_compile_memory": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_compile_memory": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "max_ram_usage" unit: "bytes" - name: "Compile memory (1000 classes)" benchmark_filter: num_classes: 1000 additional_cmake_args: [] benchmark_generation_flags: [] name: [ "fruit_compile_memory", "boost_di_compile_memory", "simple_di_compile_memory", "simple_di_with_interfaces_compile_memory", "simple_di_with_interfaces_and_new_delete_compile_memory", ] columns: dimension: "name" pretty_printer: fixed_map: "fruit_compile_memory": "Fruit" "boost_di_compile_memory": "Boost.DI" "simple_di_compile_memory": "Simple DI" "simple_di_with_interfaces_compile_memory": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_compile_memory": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "max_ram_usage" unit: "bytes" - name: "Startup time (100 classes)" benchmark_filter: num_classes: 100 additional_cmake_args: [] benchmark_generation_flags: [] columns: dimension: "name" pretty_printer: fixed_map: "fruit_startup_time": "Fruit" "fruit_startup_time_with_normalized_component": "Fruit (with normalized component)" "boost_di_startup_time": "Boost.DI" "simple_di_startup_time": "Simple DI" "simple_di_with_interfaces_startup_time": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_startup_time": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "startup_time" unit: "seconds" - name: "Startup time (250 classes)" benchmark_filter: num_classes: 250 additional_cmake_args: [] benchmark_generation_flags: [] columns: dimension: "name" pretty_printer: fixed_map: "fruit_startup_time": "Fruit" "fruit_startup_time_with_normalized_component": "Fruit (with normalized component)" "boost_di_startup_time": "Boost.DI" "simple_di_startup_time": "Simple DI" "simple_di_with_interfaces_startup_time": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_startup_time": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "startup_time" unit: "seconds" - name: "Startup time (1000 classes)" benchmark_filter: num_classes: 1000 additional_cmake_args: [] benchmark_generation_flags: [] columns: dimension: "name" pretty_printer: fixed_map: "fruit_startup_time": "Fruit" "fruit_startup_time_with_normalized_component": "Fruit (with normalized component)" "boost_di_startup_time": "Boost.DI" "simple_di_startup_time": "Simple DI" "simple_di_with_interfaces_startup_time": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_startup_time": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "startup_time" unit: "seconds" - name: "Per-request time (100 classes)" benchmark_filter: num_classes: 100 additional_cmake_args: [] benchmark_generation_flags: [] columns: dimension: "name" pretty_printer: fixed_map: "fruit_run_time": "Fruit" "boost_di_run_time": "Boost.DI" "simple_di_run_time": "Simple DI" "simple_di_with_interfaces_run_time": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_run_time": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "Total per request" unit: "seconds" - name: "Per-request time (250 classes)" benchmark_filter: num_classes: 250 additional_cmake_args: [] benchmark_generation_flags: [] columns: dimension: "name" pretty_printer: fixed_map: "fruit_run_time": "Fruit" "boost_di_run_time": "Boost.DI" "simple_di_run_time": "Simple DI" "simple_di_with_interfaces_run_time": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_run_time": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "Total per request" unit: "seconds" - name: "Per-request time (1000 classes)" benchmark_filter: num_classes: 1000 additional_cmake_args: [] benchmark_generation_flags: [] columns: dimension: "name" pretty_printer: fixed_map: "fruit_run_time": "Fruit" "boost_di_run_time": "Boost.DI" "simple_di_run_time": "Simple DI" "simple_di_with_interfaces_run_time": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_run_time": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "Total per request" unit: "seconds" - name: "Executable size (stripped, 100 classes)" benchmark_filter: num_classes: 100 additional_cmake_args: [] benchmark_generation_flags: [] columns: dimension: "name" pretty_printer: fixed_map: "fruit_executable_size": "Fruit" "boost_di_executable_size": "Boost.DI" "simple_di_executable_size": "Simple DI" "simple_di_with_interfaces_executable_size": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_executable_size": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "num_bytes" unit: "bytes" - name: "Executable size (stripped, 250 classes)" benchmark_filter: num_classes: 250 additional_cmake_args: [] benchmark_generation_flags: [] columns: dimension: "name" pretty_printer: fixed_map: "fruit_executable_size": "Fruit" "boost_di_executable_size": "Boost.DI" "simple_di_executable_size": "Simple DI" "simple_di_with_interfaces_executable_size": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_executable_size": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "num_bytes" unit: "bytes" - name: "Executable size (stripped, 1000 classes)" benchmark_filter: num_classes: 1000 additional_cmake_args: [] benchmark_generation_flags: [] columns: dimension: "name" pretty_printer: fixed_map: "fruit_executable_size": "Fruit" "boost_di_executable_size": "Boost.DI" "simple_di_executable_size": "Simple DI" "simple_di_with_interfaces_executable_size": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_executable_size": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "num_bytes" unit: "bytes" - name: "Executable size (stripped, 100 classes, no exceptions/rtti)" benchmark_filter: num_classes: 100 additional_cmake_args: ['-DCMAKE_CXX_FLAGS=-fno-exceptions -fno-rtti'] benchmark_generation_flags: [] columns: dimension: "name" pretty_printer: fixed_map: "fruit_executable_size_without_exceptions_and_rtti": "Fruit" "boost_di_executable_size_without_exceptions_and_rtti": "Boost.DI" "simple_di_executable_size_without_exceptions_and_rtti": "Simple DI" "simple_di_with_interfaces_executable_size_without_exceptions_and_rtti": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_executable_size_without_exceptions_and_rtti": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "num_bytes" unit: "bytes" - name: "Executable size (stripped, 250 classes, no exceptions/rtti)" benchmark_filter: num_classes: 250 additional_cmake_args: ['-DCMAKE_CXX_FLAGS=-fno-exceptions -fno-rtti'] benchmark_generation_flags: [] columns: dimension: "name" pretty_printer: fixed_map: "fruit_executable_size_without_exceptions_and_rtti": "Fruit" "boost_di_executable_size_without_exceptions_and_rtti": "Boost.DI" "simple_di_executable_size_without_exceptions_and_rtti": "Simple DI" "simple_di_with_interfaces_executable_size_without_exceptions_and_rtti": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_executable_size_without_exceptions_and_rtti": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "num_bytes" unit: "bytes" - name: "Executable size (stripped, 1000 classes, no exceptions/rtti)" benchmark_filter: num_classes: 1000 additional_cmake_args: ['-DCMAKE_CXX_FLAGS=-fno-exceptions -fno-rtti'] benchmark_generation_flags: [] columns: dimension: "name" pretty_printer: fixed_map: "fruit_executable_size_without_exceptions_and_rtti": "Fruit" "boost_di_executable_size_without_exceptions_and_rtti": "Boost.DI" "simple_di_executable_size_without_exceptions_and_rtti": "Simple DI" "simple_di_with_interfaces_executable_size_without_exceptions_and_rtti": "Simple DI w/ interfaces" "simple_di_with_interfaces_and_new_delete_executable_size_without_exceptions_and_rtti": "Simple DI w/ interfaces, new/delete" rows: *compiler_name_row results: dimension: "num_bytes" unit: "bytes" # The following tables compare various Fruit configurations - name: "Compile time (100 classes)" benchmark_filter: num_classes: 100 name: "fruit_compile_time" benchmark_generation_flags: [] columns: dimension: "additional_cmake_args" pretty_printer: fixed_map: - from: [] to: "default" - from: ["-DFRUIT_USES_BOOST=False"] to: "With -DFRUIT_USES_BOOST=False" - from: ["-DBUILD_SHARED_LIBS=False"] to: "Statically-linking with Fruit" rows: *compiler_name_row results: dimension: "compile_time" unit: "seconds" - name: "Startup time (100 classes)" benchmark_filter: num_classes: 100 name: "fruit_startup_time" benchmark_generation_flags: [] columns: dimension: "additional_cmake_args" pretty_printer: fixed_map: - from: [] to: "default" - from: ["-DFRUIT_USES_BOOST=False"] to: "With -DFRUIT_USES_BOOST=False" - from: ["-DBUILD_SHARED_LIBS=False"] to: "Statically-linking with Fruit" rows: *compiler_name_row results: dimension: "startup_time" unit: "seconds" - name: "Startup time (100 classes)" benchmark_filter: num_classes: 100 name: "fruit_startup_time" benchmark_generation_flags: [] columns: dimension: "additional_cmake_args" pretty_printer: fixed_map: - from: [] to: "default" - from: ["-DFRUIT_USES_BOOST=False"] to: "With -DFRUIT_USES_BOOST=False" - from: ["-DBUILD_SHARED_LIBS=False"] to: "Statically-linking with Fruit" rows: *compiler_name_row results: dimension: "startup_time" unit: "seconds" - name: "Per-request time (100 classes)" benchmark_filter: num_classes: 100 name: "fruit_run_time" benchmark_generation_flags: [] columns: dimension: "additional_cmake_args" pretty_printer: fixed_map: - from: [] to: "default" - from: ["-DFRUIT_USES_BOOST=False"] to: "With -DFRUIT_USES_BOOST=False" - from: ["-DBUILD_SHARED_LIBS=False"] to: "Statically-linking with Fruit" rows: *compiler_name_row results: dimension: "Total per request" unit: "seconds" - name: "Executable size (stripped)" benchmark_filter: name: "fruit_executable_size" benchmark_generation_flags: [] additional_cmake_args: [] columns: *num_classes_column rows: *compiler_name_row results: dimension: "num_bytes" unit: "bytes" - name: "Executable size (stripped, 100 classes)" benchmark_filter: num_classes: 100 name: "fruit_executable_size" benchmark_generation_flags: [] columns: dimension: "additional_cmake_args" pretty_printer: fixed_map: - from: [] to: "default" - from: ["-DFRUIT_USES_BOOST=False"] to: "With -DFRUIT_USES_BOOST=False" - from: ["-DBUILD_SHARED_LIBS=False"] to: "Statically-linking with Fruit" rows: *compiler_name_row results: dimension: "num_bytes" unit: "bytes"