1
2# These values are ignored, they are here just to be referenced below.
3constants:
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
19tables:
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