Home | History | Annotate | Download | only in tables
      1 
      2 # These values are ignored, they are here just to be referenced below.
      3 constants:
      4   num_bindings_column: &num_bindings_column
      5     dimension: "num_bindings"
      6     pretty_printer:
      7       format_string: "%s bindings"
      8 
      9   num_classes_column: &num_classes_column
     10     dimension: "num_classes"
     11     pretty_printer:
     12       format_string: "%s classes"
     13 
     14   compiler_name_row: &compiler_name_row
     15     dimension: "compiler_name"
     16     pretty_printer:
     17       format_string: "%s"
     18 
     19 tables:
     20   # Main Fruit benchmark tables
     21 
     22   - name: "Fruit compile time (single file)"
     23     benchmark_filter:
     24       name: "fruit_single_file_compile_time"
     25       additional_cmake_args: []
     26       benchmark_generation_flags: []
     27     columns: *num_bindings_column
     28     rows: *compiler_name_row
     29     results:
     30       dimension: "compile_time"
     31       unit: "seconds"
     32   
     33   - name: "Fruit compile time"
     34     benchmark_filter:
     35       name: "fruit_compile_time"
     36       additional_cmake_args: []
     37       benchmark_generation_flags: []
     38     columns: *num_classes_column
     39     rows: *compiler_name_row
     40     results:
     41       dimension: "compile_time"
     42       unit: "seconds"
     43 
     44   - name: "Fruit full injection time"
     45     benchmark_filter:
     46       name: "fruit_run_time"
     47       additional_cmake_args: []
     48       benchmark_generation_flags: []
     49     columns: *num_classes_column
     50     rows: *compiler_name_row
     51     results:
     52       dimension: "Full injection time"
     53       unit: "seconds"
     54 
     55   - name: "Fruit setup time"
     56     benchmark_filter:
     57       name: "fruit_run_time"
     58       additional_cmake_args: []
     59       benchmark_generation_flags: []
     60     columns: *num_classes_column
     61     rows: *compiler_name_row
     62     results:
     63       dimension: "Total for setup"
     64       unit: "seconds"
     65 
     66   - name: "Fruit per-request time"
     67     benchmark_filter:
     68       name: "fruit_run_time"
     69       additional_cmake_args: []
     70       benchmark_generation_flags: []
     71     columns: *num_classes_column
     72     rows: *compiler_name_row
     73     results:
     74       dimension: "Total per request"
     75       unit: "seconds"
     76   
     77   - name: "New/delete time"
     78     benchmark_filter: 
     79       name: "new_delete_run_time"
     80       additional_cmake_args: []
     81       benchmark_generation_flags: []
     82     columns: *num_classes_column
     83     rows: *compiler_name_row
     84     results:
     85       dimension: "Total"
     86       unit: "seconds"
     87 
     88   # The following tables compare Fruit to Boost.DI or to no DI library
     89     
     90   - name: "Compile time (100 classes)"
     91     benchmark_filter:
     92       num_classes: 100
     93       additional_cmake_args: []
     94       benchmark_generation_flags: []
     95     columns:
     96       dimension: "name"
     97       pretty_printer:
     98         fixed_map:
     99           "fruit_compile_time": "Fruit"
    100           "boost_di_compile_time": "Boost.DI"
    101           "simple_di_compile_time": "Simple DI"
    102           "simple_di_with_interfaces_compile_time": "Simple DI w/ interfaces"
    103           "simple_di_with_interfaces_and_new_delete_compile_time": "Simple DI w/ interfaces, new/delete"
    104     rows: *compiler_name_row
    105     results:
    106       dimension: "compile_time"
    107       unit: "seconds"
    108 
    109   - name: "Compile time (1000 classes)"
    110     benchmark_filter:
    111       num_classes: 1000
    112       additional_cmake_args: []
    113       benchmark_generation_flags: []
    114     columns:
    115       dimension: "name"
    116       pretty_printer:
    117         fixed_map:
    118           "fruit_compile_time": "Fruit"
    119           "boost_di_compile_time": "Boost.DI"
    120           "simple_di_compile_time": "Simple DI"
    121           "simple_di_with_interfaces_compile_time": "Simple DI w/ interfaces"
    122           "simple_di_with_interfaces_and_new_delete_compile_time": "Simple DI w/ interfaces, new/delete"
    123     rows: *compiler_name_row
    124     results:
    125       dimension: "compile_time"
    126       unit: "seconds"
    127 
    128   - name: "Incremental compile time (100 classes)"
    129     benchmark_filter:
    130       num_classes: 100
    131       additional_cmake_args: []
    132       benchmark_generation_flags: []
    133     columns:
    134       dimension: "name"
    135       pretty_printer:
    136         fixed_map:
    137           "fruit_incremental_compile_time": "Fruit"
    138           "boost_di_incremental_compile_time": "Boost.DI"
    139           "simple_di_incremental_compile_time": "Simple DI"
    140           "simple_di_with_interfaces_incremental_compile_time": "Simple DI w/ interfaces"
    141           "simple_di_with_interfaces_and_new_delete_incremental_compile_time": "Simple DI w/ interfaces, new/delete"
    142     rows: *compiler_name_row
    143     results:
    144       dimension: "compile_time"
    145       unit: "seconds"
    146 
    147   - name: "Incremental compile time (1000 classes)"
    148     benchmark_filter:
    149       num_classes: 1000
    150       additional_cmake_args: []
    151       benchmark_generation_flags: []
    152     columns:
    153       dimension: "name"
    154       pretty_printer:
    155         fixed_map:
    156           "fruit_incremental_compile_time": "Fruit"
    157           "boost_di_incremental_compile_time": "Boost.DI"
    158           "simple_di_incremental_compile_time": "Simple DI"
    159           "simple_di_with_interfaces_incremental_compile_time": "Simple DI w/ interfaces"
    160           "simple_di_with_interfaces_and_new_delete_incremental_compile_time": "Simple DI w/ interfaces, new/delete"
    161     rows: *compiler_name_row
    162     results:
    163       dimension: "compile_time"
    164       unit: "seconds"
    165 
    166   - name: "Full injection time (100 classes)"
    167     benchmark_filter:
    168       num_classes: 100
    169       additional_cmake_args: []
    170       benchmark_generation_flags: []
    171     columns:
    172       dimension: "name"
    173       pretty_printer:
    174         fixed_map:
    175           "fruit_run_time": "Fruit"
    176           "boost_di_run_time": "Boost.DI"
    177           "simple_di_run_time": "Simple DI"
    178           "simple_di_with_interfaces_run_time": "Simple DI w/ interfaces"
    179           "simple_di_with_interfaces_and_new_delete_run_time": "Simple DI w/ interfaces, new/delete"
    180     rows: *compiler_name_row
    181     results:
    182       dimension: "Full injection time"
    183       unit: "seconds"
    184 
    185   - name: "Full injection time (1000 classes)"
    186     benchmark_filter:
    187       num_classes: 1000
    188       additional_cmake_args: []
    189       benchmark_generation_flags: []
    190     columns:
    191       dimension: "name"
    192       pretty_printer:
    193         fixed_map:
    194           "fruit_run_time": "Fruit"
    195           "boost_di_run_time": "Boost.DI"
    196           "simple_di_run_time": "Simple DI"
    197           "simple_di_with_interfaces_run_time": "Simple DI w/ interfaces"
    198           "simple_di_with_interfaces_and_new_delete_run_time": "Simple DI w/ interfaces, new/delete"
    199     rows: *compiler_name_row
    200     results:
    201       dimension: "Full injection time"
    202       unit: "seconds"
    203 
    204   - name: "Setup time (100 classes)"
    205     benchmark_filter:
    206       num_classes: 100
    207       additional_cmake_args: []
    208       benchmark_generation_flags: []
    209     columns:
    210       dimension: "name"
    211       pretty_printer:
    212         fixed_map:
    213           "fruit_run_time": "Fruit"
    214           "boost_di_run_time": "Boost.DI"
    215           "simple_di_run_time": "Simple DI"
    216           "simple_di_with_interfaces_run_time": "Simple DI w/ interfaces"
    217           "simple_di_with_interfaces_and_new_delete_run_time": "Simple DI w/ interfaces, new/delete"
    218     rows: *compiler_name_row
    219     results:
    220       dimension: "Total for setup"
    221       unit: "seconds"
    222   
    223   - name: "Setup time (1000 classes)"
    224     benchmark_filter:
    225       num_classes: 1000
    226       additional_cmake_args: []
    227       benchmark_generation_flags: []
    228     columns:
    229       dimension: "name"
    230       pretty_printer:
    231         fixed_map:
    232           "fruit_run_time": "Fruit"
    233           "boost_di_run_time": "Boost.DI"
    234           "simple_di_run_time": "Simple DI"
    235           "simple_di_with_interfaces_run_time": "Simple DI w/ interfaces"
    236           "simple_di_with_interfaces_and_new_delete_run_time": "Simple DI w/ interfaces, new/delete"
    237     rows: *compiler_name_row
    238     results:
    239       dimension: "Total for setup"
    240       unit: "seconds"
    241 
    242   - name: "Per-request time (100 classes)"
    243     benchmark_filter:
    244       num_classes: 100
    245       additional_cmake_args: []
    246       benchmark_generation_flags: []
    247     columns:
    248       dimension: "name"
    249       pretty_printer:
    250         fixed_map:
    251           "fruit_run_time": "Fruit"
    252           "boost_di_run_time": "Boost.DI"
    253           "simple_di_run_time": "Simple DI"
    254           "simple_di_with_interfaces_run_time": "Simple DI w/ interfaces"
    255           "simple_di_with_interfaces_and_new_delete_run_time": "Simple DI w/ interfaces, new/delete"
    256     rows: *compiler_name_row
    257     results:
    258       dimension: "Total per request"
    259       unit: "seconds"
    260 
    261   - name: "Per-request time (1000 classes)"
    262     benchmark_filter:
    263       num_classes: 1000
    264       additional_cmake_args: []
    265       benchmark_generation_flags: []
    266     columns:
    267       dimension: "name"
    268       pretty_printer:
    269         fixed_map:
    270           "fruit_run_time": "Fruit"
    271           "boost_di_run_time": "Boost.DI"
    272           "simple_di_run_time": "Simple DI"
    273           "simple_di_with_interfaces_run_time": "Simple DI w/ interfaces"
    274           "simple_di_with_interfaces_and_new_delete_run_time": "Simple DI w/ interfaces, new/delete"
    275     rows: *compiler_name_row
    276     results:
    277       dimension: "Total per request"
    278       unit: "seconds"
    279 
    280   - name: "Executable size (stripped, 100 classes)"
    281     benchmark_filter:
    282       num_classes: 100
    283       additional_cmake_args: []
    284       benchmark_generation_flags: []
    285     columns:
    286       dimension: "name"
    287       pretty_printer:
    288         fixed_map:
    289           "fruit_executable_size": "Fruit"
    290           "boost_di_executable_size": "Boost.DI"
    291           "simple_di_run_time": "Simple DI"
    292           "simple_di_with_interfaces_run_time": "Simple DI w/ interfaces"
    293           "simple_di_with_interfaces_and_new_delete_run_time": "Simple DI w/ interfaces, new/delete"
    294     rows: *compiler_name_row
    295     results:
    296       dimension: "num_bytes"
    297       unit: "bytes"
    298 
    299   - name: "Executable size (stripped, 1000 classes)"
    300     benchmark_filter:
    301       num_classes: 1000
    302       additional_cmake_args: []
    303       benchmark_generation_flags: []
    304     columns:
    305       dimension: "name"
    306       pretty_printer:
    307         fixed_map:
    308           "fruit_executable_size": "Fruit"
    309           "boost_di_executable_size": "Boost.DI"
    310           "simple_di_run_time": "Simple DI"
    311           "simple_di_with_interfaces_run_time": "Simple DI w/ interfaces"
    312           "simple_di_with_interfaces_and_new_delete_run_time": "Simple DI w/ interfaces, new/delete"
    313     rows: *compiler_name_row
    314     results:
    315       dimension: "num_bytes"
    316       unit: "bytes"
    317 
    318 
    319   # The following tables compare various Fruit configurations
    320 
    321   - name: "Compile time (100 classes)"
    322     benchmark_filter:
    323       num_classes: 100
    324       name: "fruit_compile_time"
    325       benchmark_generation_flags: []
    326     columns:
    327       dimension: "additional_cmake_args"
    328       pretty_printer:
    329         fixed_map:
    330           - from: []
    331             to: "default"
    332           - from: ["-DFRUIT_USES_BOOST=False"]
    333             to: "With -DFRUIT_USES_BOOST=False"
    334           - from: ["-DBUILD_SHARED_LIBS=False"]
    335             to: "Statically-linking with Fruit"
    336     rows: *compiler_name_row
    337     results:
    338       dimension: "compile_time"
    339       unit: "seconds"
    340 
    341   - name: "Full injection time (100 classes)"
    342     benchmark_filter:
    343       num_classes: 100
    344       name: "fruit_run_time"
    345       benchmark_generation_flags: []
    346     columns:
    347       dimension: "additional_cmake_args"
    348       pretty_printer:
    349         fixed_map:
    350           - from: []
    351             to: "default"
    352           - from: ["-DFRUIT_USES_BOOST=False"]
    353             to: "With -DFRUIT_USES_BOOST=False"
    354           - from: ["-DBUILD_SHARED_LIBS=False"]
    355             to: "Statically-linking with Fruit"
    356     rows: *compiler_name_row
    357     results:
    358       dimension: "Full injection time"
    359       unit: "seconds"
    360 
    361   - name: "Setup time (100 classes)"
    362     benchmark_filter:
    363       num_classes: 100
    364       name: "fruit_run_time"
    365       benchmark_generation_flags: []
    366     columns:
    367       dimension: "additional_cmake_args"
    368       pretty_printer:
    369         fixed_map:
    370           - from: []
    371             to: "default"
    372           - from: ["-DFRUIT_USES_BOOST=False"]
    373             to: "With -DFRUIT_USES_BOOST=False"
    374           - from: ["-DBUILD_SHARED_LIBS=False"]
    375             to: "Statically-linking with Fruit"
    376     rows: *compiler_name_row
    377     results:
    378       dimension: "Total for setup"
    379       unit: "seconds"
    380 
    381   - name: "Per-request time (100 classes)"
    382     benchmark_filter:
    383       num_classes: 100
    384       name: "fruit_run_time"
    385       benchmark_generation_flags: []
    386     columns:
    387       dimension: "additional_cmake_args"
    388       pretty_printer:
    389         fixed_map:
    390           - from: []
    391             to: "default"
    392           - from: ["-DFRUIT_USES_BOOST=False"]
    393             to: "With -DFRUIT_USES_BOOST=False"
    394           - from: ["-DBUILD_SHARED_LIBS=False"]
    395             to: "Statically-linking with Fruit"
    396     rows: *compiler_name_row
    397     results:
    398       dimension: "Total per request"
    399       unit: "seconds"
    400 
    401   - name: "Executable size (stripped)"
    402     benchmark_filter:
    403       name: "fruit_executable_size"
    404       benchmark_generation_flags: []
    405       additional_cmake_args: []
    406     columns: *num_classes_column
    407     rows: *compiler_name_row
    408     results:
    409       dimension: "num_bytes"
    410       unit: "bytes"
    411 
    412   - name: "Executable size (stripped, 100 classes)"
    413     benchmark_filter:
    414       num_classes: 100
    415       name: "fruit_executable_size"
    416       benchmark_generation_flags: []
    417     columns:
    418       dimension: "additional_cmake_args"
    419       pretty_printer:
    420         fixed_map:
    421           - from: []
    422             to: "default"
    423           - from: ["-DFRUIT_USES_BOOST=False"]
    424             to: "With -DFRUIT_USES_BOOST=False"
    425           - from: ["-DBUILD_SHARED_LIBS=False"]
    426             to: "Statically-linking with Fruit"
    427     rows: *compiler_name_row
    428     results:
    429       dimension: "num_bytes"
    430       unit: "bytes"
    431