You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

658 lines
22 KiB

# 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"