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