• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 startup time"
45    benchmark_filter:
46      name: "fruit_startup_time"
47      additional_cmake_args: []
48      benchmark_generation_flags: []
49    columns: *num_classes_column
50    rows: *compiler_name_row
51    results:
52      dimension: "startup_time"
53      unit: "seconds"
54
55  - name: "Fruit per-request 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 per request"
64      unit: "seconds"
65
66  - name: "New/delete time"
67    benchmark_filter: 
68      name: "new_delete_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"
75      unit: "seconds"
76
77  # The following tables compare Fruit to Boost.DI or to no DI library
78
79  - name: "Compile time (100 classes)"
80    benchmark_filter:
81      num_classes: 100
82      additional_cmake_args: []
83      benchmark_generation_flags: []
84      name: [
85        "fruit_compile_time",
86        "boost_di_compile_time",
87        "simple_di_compile_time",
88        "simple_di_with_interfaces_compile_time",
89        "simple_di_with_interfaces_and_new_delete_compile_time",
90      ]
91    columns:
92      dimension: "name"
93      pretty_printer:
94        fixed_map:
95          "fruit_compile_time": "Fruit"
96          "boost_di_compile_time": "Boost.DI"
97          "simple_di_compile_time": "Simple DI"
98          "simple_di_with_interfaces_compile_time": "Simple DI w/ interfaces"
99          "simple_di_with_interfaces_and_new_delete_compile_time": "Simple DI w/ interfaces, new/delete"
100    rows: *compiler_name_row
101    results:
102      dimension: "compile_time"
103      unit: "seconds"
104
105  - name: "Compile time (250 classes)"
106    benchmark_filter:
107      num_classes: 250
108      additional_cmake_args: []
109      benchmark_generation_flags: []
110      name: [
111        "fruit_compile_time",
112        "boost_di_compile_time",
113        "simple_di_compile_time",
114        "simple_di_with_interfaces_compile_time",
115        "simple_di_with_interfaces_and_new_delete_compile_time",
116      ]
117    columns:
118      dimension: "name"
119      pretty_printer:
120        fixed_map:
121          "fruit_compile_time": "Fruit"
122          "boost_di_compile_time": "Boost.DI"
123          "simple_di_compile_time": "Simple DI"
124          "simple_di_with_interfaces_compile_time": "Simple DI w/ interfaces"
125          "simple_di_with_interfaces_and_new_delete_compile_time": "Simple DI w/ interfaces, new/delete"
126    rows: *compiler_name_row
127    results:
128      dimension: "compile_time"
129      unit: "seconds"
130
131  - name: "Compile time (1000 classes)"
132    benchmark_filter:
133      num_classes: 1000
134      additional_cmake_args: []
135      benchmark_generation_flags: []
136      name: [
137        "fruit_compile_time",
138        "boost_di_compile_time",
139        "simple_di_compile_time",
140        "simple_di_with_interfaces_compile_time",
141        "simple_di_with_interfaces_and_new_delete_compile_time",
142      ]
143    columns:
144      dimension: "name"
145      pretty_printer:
146        fixed_map:
147          "fruit_compile_time": "Fruit"
148          "boost_di_compile_time": "Boost.DI"
149          "simple_di_compile_time": "Simple DI"
150          "simple_di_with_interfaces_compile_time": "Simple DI w/ interfaces"
151          "simple_di_with_interfaces_and_new_delete_compile_time": "Simple DI w/ interfaces, new/delete"
152    rows: *compiler_name_row
153    results:
154      dimension: "compile_time"
155      unit: "seconds"
156
157  - name: "Incremental compile time (100 classes)"
158    benchmark_filter:
159      num_classes: 100
160      additional_cmake_args: []
161      benchmark_generation_flags: []
162      name: [
163        "fruit_incremental_compile_time",
164        "boost_di_incremental_compile_time",
165        "simple_di_incremental_compile_time",
166        "simple_di_with_interfaces_incremental_compile_time",
167        "simple_di_with_interfaces_and_new_delete_incremental_compile_time",
168      ]
169    columns:
170      dimension: "name"
171      pretty_printer:
172        fixed_map:
173          "fruit_incremental_compile_time": "Fruit"
174          "boost_di_incremental_compile_time": "Boost.DI"
175          "simple_di_incremental_compile_time": "Simple DI"
176          "simple_di_with_interfaces_incremental_compile_time": "Simple DI w/ interfaces"
177          "simple_di_with_interfaces_and_new_delete_incremental_compile_time": "Simple DI w/ interfaces, new/delete"
178    rows: *compiler_name_row
179    results:
180      dimension: "incremental_compile_time"
181      unit: "seconds"
182
183  - name: "Incremental compile time (250 classes)"
184    benchmark_filter:
185      num_classes: 250
186      additional_cmake_args: []
187      benchmark_generation_flags: []
188      name: [
189        "fruit_incremental_compile_time",
190        "boost_di_incremental_compile_time",
191        "simple_di_incremental_compile_time",
192        "simple_di_with_interfaces_incremental_compile_time",
193        "simple_di_with_interfaces_and_new_delete_incremental_compile_time",
194      ]
195    columns:
196      dimension: "name"
197      pretty_printer:
198        fixed_map:
199          "fruit_incremental_compile_time": "Fruit"
200          "boost_di_incremental_compile_time": "Boost.DI"
201          "simple_di_incremental_compile_time": "Simple DI"
202          "simple_di_with_interfaces_incremental_compile_time": "Simple DI w/ interfaces"
203          "simple_di_with_interfaces_and_new_delete_incremental_compile_time": "Simple DI w/ interfaces, new/delete"
204    rows: *compiler_name_row
205    results:
206      dimension: "incremental_compile_time"
207      unit: "seconds"
208
209  - name: "Incremental compile time (1000 classes)"
210    benchmark_filter:
211      num_classes: 1000
212      additional_cmake_args: []
213      benchmark_generation_flags: []
214      name: [
215        "fruit_incremental_compile_time",
216        "boost_di_incremental_compile_time",
217        "simple_di_incremental_compile_time",
218        "simple_di_with_interfaces_incremental_compile_time",
219        "simple_di_with_interfaces_and_new_delete_incremental_compile_time",
220      ]
221    columns:
222      dimension: "name"
223      pretty_printer:
224        fixed_map:
225          "fruit_incremental_compile_time": "Fruit"
226          "boost_di_incremental_compile_time": "Boost.DI"
227          "simple_di_incremental_compile_time": "Simple DI"
228          "simple_di_with_interfaces_incremental_compile_time": "Simple DI w/ interfaces"
229          "simple_di_with_interfaces_and_new_delete_incremental_compile_time": "Simple DI w/ interfaces, new/delete"
230    rows: *compiler_name_row
231    results:
232      dimension: "incremental_compile_time"
233      unit: "seconds"
234
235  - name: "Compile memory (100 classes)"
236    benchmark_filter:
237      num_classes: 100
238      additional_cmake_args: []
239      benchmark_generation_flags: []
240      name: [
241        "fruit_compile_memory",
242        "boost_di_compile_memory",
243        "simple_di_compile_memory",
244        "simple_di_with_interfaces_compile_memory",
245        "simple_di_with_interfaces_and_new_delete_compile_memory",
246      ]
247    columns:
248      dimension: "name"
249      pretty_printer:
250        fixed_map:
251          "fruit_compile_memory": "Fruit"
252          "boost_di_compile_memory": "Boost.DI"
253          "simple_di_compile_memory": "Simple DI"
254          "simple_di_with_interfaces_compile_memory": "Simple DI w/ interfaces"
255          "simple_di_with_interfaces_and_new_delete_compile_memory": "Simple DI w/ interfaces, new/delete"
256    rows: *compiler_name_row
257    results:
258      dimension: "max_ram_usage"
259      unit: "bytes"
260
261  - name: "Compile memory (250 classes)"
262    benchmark_filter:
263      num_classes: 250
264      additional_cmake_args: []
265      benchmark_generation_flags: []
266      name: [
267        "fruit_compile_memory",
268        "boost_di_compile_memory",
269        "simple_di_compile_memory",
270        "simple_di_with_interfaces_compile_memory",
271        "simple_di_with_interfaces_and_new_delete_compile_memory",
272      ]
273    columns:
274      dimension: "name"
275      pretty_printer:
276        fixed_map:
277          "fruit_compile_memory": "Fruit"
278          "boost_di_compile_memory": "Boost.DI"
279          "simple_di_compile_memory": "Simple DI"
280          "simple_di_with_interfaces_compile_memory": "Simple DI w/ interfaces"
281          "simple_di_with_interfaces_and_new_delete_compile_memory": "Simple DI w/ interfaces, new/delete"
282    rows: *compiler_name_row
283    results:
284      dimension: "max_ram_usage"
285      unit: "bytes"
286
287  - name: "Compile memory (1000 classes)"
288    benchmark_filter:
289      num_classes: 1000
290      additional_cmake_args: []
291      benchmark_generation_flags: []
292      name: [
293        "fruit_compile_memory",
294        "boost_di_compile_memory",
295        "simple_di_compile_memory",
296        "simple_di_with_interfaces_compile_memory",
297        "simple_di_with_interfaces_and_new_delete_compile_memory",
298      ]
299    columns:
300      dimension: "name"
301      pretty_printer:
302        fixed_map:
303          "fruit_compile_memory": "Fruit"
304          "boost_di_compile_memory": "Boost.DI"
305          "simple_di_compile_memory": "Simple DI"
306          "simple_di_with_interfaces_compile_memory": "Simple DI w/ interfaces"
307          "simple_di_with_interfaces_and_new_delete_compile_memory": "Simple DI w/ interfaces, new/delete"
308    rows: *compiler_name_row
309    results:
310      dimension: "max_ram_usage"
311      unit: "bytes"
312
313  - name: "Startup time (100 classes)"
314    benchmark_filter:
315      num_classes: 100
316      additional_cmake_args: []
317      benchmark_generation_flags: []
318    columns:
319      dimension: "name"
320      pretty_printer:
321        fixed_map:
322          "fruit_startup_time": "Fruit"
323          "fruit_startup_time_with_normalized_component": "Fruit (with normalized component)"
324          "boost_di_startup_time": "Boost.DI"
325          "simple_di_startup_time": "Simple DI"
326          "simple_di_with_interfaces_startup_time": "Simple DI w/ interfaces"
327          "simple_di_with_interfaces_and_new_delete_startup_time": "Simple DI w/ interfaces, new/delete"
328    rows: *compiler_name_row
329    results:
330      dimension: "startup_time"
331      unit: "seconds"
332
333  - name: "Startup time (250 classes)"
334    benchmark_filter:
335      num_classes: 250
336      additional_cmake_args: []
337      benchmark_generation_flags: []
338    columns:
339      dimension: "name"
340      pretty_printer:
341        fixed_map:
342          "fruit_startup_time": "Fruit"
343          "fruit_startup_time_with_normalized_component": "Fruit (with normalized component)"
344          "boost_di_startup_time": "Boost.DI"
345          "simple_di_startup_time": "Simple DI"
346          "simple_di_with_interfaces_startup_time": "Simple DI w/ interfaces"
347          "simple_di_with_interfaces_and_new_delete_startup_time": "Simple DI w/ interfaces, new/delete"
348    rows: *compiler_name_row
349    results:
350      dimension: "startup_time"
351      unit: "seconds"
352
353  - name: "Startup time (1000 classes)"
354    benchmark_filter:
355      num_classes: 1000
356      additional_cmake_args: []
357      benchmark_generation_flags: []
358    columns:
359      dimension: "name"
360      pretty_printer:
361        fixed_map:
362          "fruit_startup_time": "Fruit"
363          "fruit_startup_time_with_normalized_component": "Fruit (with normalized component)"
364          "boost_di_startup_time": "Boost.DI"
365          "simple_di_startup_time": "Simple DI"
366          "simple_di_with_interfaces_startup_time": "Simple DI w/ interfaces"
367          "simple_di_with_interfaces_and_new_delete_startup_time": "Simple DI w/ interfaces, new/delete"
368    rows: *compiler_name_row
369    results:
370      dimension: "startup_time"
371      unit: "seconds"
372
373  - name: "Per-request time (100 classes)"
374    benchmark_filter:
375      num_classes: 100
376      additional_cmake_args: []
377      benchmark_generation_flags: []
378    columns:
379      dimension: "name"
380      pretty_printer:
381        fixed_map:
382          "fruit_run_time": "Fruit"
383          "boost_di_run_time": "Boost.DI"
384          "simple_di_run_time": "Simple DI"
385          "simple_di_with_interfaces_run_time": "Simple DI w/ interfaces"
386          "simple_di_with_interfaces_and_new_delete_run_time": "Simple DI w/ interfaces, new/delete"
387    rows: *compiler_name_row
388    results:
389      dimension: "Total per request"
390      unit: "seconds"
391
392  - name: "Per-request time (250 classes)"
393    benchmark_filter:
394      num_classes: 250
395      additional_cmake_args: []
396      benchmark_generation_flags: []
397    columns:
398      dimension: "name"
399      pretty_printer:
400        fixed_map:
401          "fruit_run_time": "Fruit"
402          "boost_di_run_time": "Boost.DI"
403          "simple_di_run_time": "Simple DI"
404          "simple_di_with_interfaces_run_time": "Simple DI w/ interfaces"
405          "simple_di_with_interfaces_and_new_delete_run_time": "Simple DI w/ interfaces, new/delete"
406    rows: *compiler_name_row
407    results:
408      dimension: "Total per request"
409      unit: "seconds"
410
411  - name: "Per-request time (1000 classes)"
412    benchmark_filter:
413      num_classes: 1000
414      additional_cmake_args: []
415      benchmark_generation_flags: []
416    columns:
417      dimension: "name"
418      pretty_printer:
419        fixed_map:
420          "fruit_run_time": "Fruit"
421          "boost_di_run_time": "Boost.DI"
422          "simple_di_run_time": "Simple DI"
423          "simple_di_with_interfaces_run_time": "Simple DI w/ interfaces"
424          "simple_di_with_interfaces_and_new_delete_run_time": "Simple DI w/ interfaces, new/delete"
425    rows: *compiler_name_row
426    results:
427      dimension: "Total per request"
428      unit: "seconds"
429
430  - name: "Executable size (stripped, 100 classes)"
431    benchmark_filter:
432      num_classes: 100
433      additional_cmake_args: []
434      benchmark_generation_flags: []
435    columns:
436      dimension: "name"
437      pretty_printer:
438        fixed_map:
439          "fruit_executable_size": "Fruit"
440          "boost_di_executable_size": "Boost.DI"
441          "simple_di_executable_size": "Simple DI"
442          "simple_di_with_interfaces_executable_size": "Simple DI w/ interfaces"
443          "simple_di_with_interfaces_and_new_delete_executable_size": "Simple DI w/ interfaces, new/delete"
444    rows: *compiler_name_row
445    results:
446      dimension: "num_bytes"
447      unit: "bytes"
448
449  - name: "Executable size (stripped, 250 classes)"
450    benchmark_filter:
451      num_classes: 250
452      additional_cmake_args: []
453      benchmark_generation_flags: []
454    columns:
455      dimension: "name"
456      pretty_printer:
457        fixed_map:
458          "fruit_executable_size": "Fruit"
459          "boost_di_executable_size": "Boost.DI"
460          "simple_di_executable_size": "Simple DI"
461          "simple_di_with_interfaces_executable_size": "Simple DI w/ interfaces"
462          "simple_di_with_interfaces_and_new_delete_executable_size": "Simple DI w/ interfaces, new/delete"
463    rows: *compiler_name_row
464    results:
465      dimension: "num_bytes"
466      unit: "bytes"
467
468  - name: "Executable size (stripped, 1000 classes)"
469    benchmark_filter:
470      num_classes: 1000
471      additional_cmake_args: []
472      benchmark_generation_flags: []
473    columns:
474      dimension: "name"
475      pretty_printer:
476        fixed_map:
477          "fruit_executable_size": "Fruit"
478          "boost_di_executable_size": "Boost.DI"
479          "simple_di_executable_size": "Simple DI"
480          "simple_di_with_interfaces_executable_size": "Simple DI w/ interfaces"
481          "simple_di_with_interfaces_and_new_delete_executable_size": "Simple DI w/ interfaces, new/delete"
482    rows: *compiler_name_row
483    results:
484      dimension: "num_bytes"
485      unit: "bytes"
486
487
488  - name: "Executable size (stripped, 100 classes, no exceptions/rtti)"
489    benchmark_filter:
490      num_classes: 100
491      additional_cmake_args: ['-DCMAKE_CXX_FLAGS=-fno-exceptions -fno-rtti']
492      benchmark_generation_flags: []
493    columns:
494      dimension: "name"
495      pretty_printer:
496        fixed_map:
497          "fruit_executable_size_without_exceptions_and_rtti": "Fruit"
498          "boost_di_executable_size_without_exceptions_and_rtti": "Boost.DI"
499          "simple_di_executable_size_without_exceptions_and_rtti": "Simple DI"
500          "simple_di_with_interfaces_executable_size_without_exceptions_and_rtti": "Simple DI w/ interfaces"
501          "simple_di_with_interfaces_and_new_delete_executable_size_without_exceptions_and_rtti": "Simple DI w/ interfaces, new/delete"
502    rows: *compiler_name_row
503    results:
504      dimension: "num_bytes"
505      unit: "bytes"
506
507  - name: "Executable size (stripped, 250 classes, no exceptions/rtti)"
508    benchmark_filter:
509      num_classes: 250
510      additional_cmake_args: ['-DCMAKE_CXX_FLAGS=-fno-exceptions -fno-rtti']
511      benchmark_generation_flags: []
512    columns:
513      dimension: "name"
514      pretty_printer:
515        fixed_map:
516          "fruit_executable_size_without_exceptions_and_rtti": "Fruit"
517          "boost_di_executable_size_without_exceptions_and_rtti": "Boost.DI"
518          "simple_di_executable_size_without_exceptions_and_rtti": "Simple DI"
519          "simple_di_with_interfaces_executable_size_without_exceptions_and_rtti": "Simple DI w/ interfaces"
520          "simple_di_with_interfaces_and_new_delete_executable_size_without_exceptions_and_rtti": "Simple DI w/ interfaces, new/delete"
521    rows: *compiler_name_row
522    results:
523      dimension: "num_bytes"
524      unit: "bytes"
525
526  - name: "Executable size (stripped, 1000 classes, no exceptions/rtti)"
527    benchmark_filter:
528      num_classes: 1000
529      additional_cmake_args: ['-DCMAKE_CXX_FLAGS=-fno-exceptions -fno-rtti']
530      benchmark_generation_flags: []
531    columns:
532      dimension: "name"
533      pretty_printer:
534        fixed_map:
535          "fruit_executable_size_without_exceptions_and_rtti": "Fruit"
536          "boost_di_executable_size_without_exceptions_and_rtti": "Boost.DI"
537          "simple_di_executable_size_without_exceptions_and_rtti": "Simple DI"
538          "simple_di_with_interfaces_executable_size_without_exceptions_and_rtti": "Simple DI w/ interfaces"
539          "simple_di_with_interfaces_and_new_delete_executable_size_without_exceptions_and_rtti": "Simple DI w/ interfaces, new/delete"
540    rows: *compiler_name_row
541    results:
542      dimension: "num_bytes"
543      unit: "bytes"
544
545
546  # The following tables compare various Fruit configurations
547
548  - name: "Compile time (100 classes)"
549    benchmark_filter:
550      num_classes: 100
551      name: "fruit_compile_time"
552      benchmark_generation_flags: []
553    columns:
554      dimension: "additional_cmake_args"
555      pretty_printer:
556        fixed_map:
557          - from: []
558            to: "default"
559          - from: ["-DFRUIT_USES_BOOST=False"]
560            to: "With -DFRUIT_USES_BOOST=False"
561          - from: ["-DBUILD_SHARED_LIBS=False"]
562            to: "Statically-linking with Fruit"
563    rows: *compiler_name_row
564    results:
565      dimension: "compile_time"
566      unit: "seconds"
567
568  - name: "Startup time (100 classes)"
569    benchmark_filter:
570      num_classes: 100
571      name: "fruit_startup_time"
572      benchmark_generation_flags: []
573    columns:
574      dimension: "additional_cmake_args"
575      pretty_printer:
576        fixed_map:
577          - from: []
578            to: "default"
579          - from: ["-DFRUIT_USES_BOOST=False"]
580            to: "With -DFRUIT_USES_BOOST=False"
581          - from: ["-DBUILD_SHARED_LIBS=False"]
582            to: "Statically-linking with Fruit"
583    rows: *compiler_name_row
584    results:
585      dimension: "startup_time"
586      unit: "seconds"
587
588  - name: "Startup time (100 classes)"
589    benchmark_filter:
590      num_classes: 100
591      name: "fruit_startup_time"
592      benchmark_generation_flags: []
593    columns:
594      dimension: "additional_cmake_args"
595      pretty_printer:
596        fixed_map:
597          - from: []
598            to: "default"
599          - from: ["-DFRUIT_USES_BOOST=False"]
600            to: "With -DFRUIT_USES_BOOST=False"
601          - from: ["-DBUILD_SHARED_LIBS=False"]
602            to: "Statically-linking with Fruit"
603    rows: *compiler_name_row
604    results:
605      dimension: "startup_time"
606      unit: "seconds"
607
608  - name: "Per-request time (100 classes)"
609    benchmark_filter:
610      num_classes: 100
611      name: "fruit_run_time"
612      benchmark_generation_flags: []
613    columns:
614      dimension: "additional_cmake_args"
615      pretty_printer:
616        fixed_map:
617          - from: []
618            to: "default"
619          - from: ["-DFRUIT_USES_BOOST=False"]
620            to: "With -DFRUIT_USES_BOOST=False"
621          - from: ["-DBUILD_SHARED_LIBS=False"]
622            to: "Statically-linking with Fruit"
623    rows: *compiler_name_row
624    results:
625      dimension: "Total per request"
626      unit: "seconds"
627
628  - name: "Executable size (stripped)"
629    benchmark_filter:
630      name: "fruit_executable_size"
631      benchmark_generation_flags: []
632      additional_cmake_args: []
633    columns: *num_classes_column
634    rows: *compiler_name_row
635    results:
636      dimension: "num_bytes"
637      unit: "bytes"
638
639  - name: "Executable size (stripped, 100 classes)"
640    benchmark_filter:
641      num_classes: 100
642      name: "fruit_executable_size"
643      benchmark_generation_flags: []
644    columns:
645      dimension: "additional_cmake_args"
646      pretty_printer:
647        fixed_map:
648          - from: []
649            to: "default"
650          - from: ["-DFRUIT_USES_BOOST=False"]
651            to: "With -DFRUIT_USES_BOOST=False"
652          - from: ["-DBUILD_SHARED_LIBS=False"]
653            to: "Statically-linking with Fruit"
654    rows: *compiler_name_row
655    results:
656      dimension: "num_bytes"
657      unit: "bytes"
658