55
66require "benchmark/ips"
77
8+ Warning [ :performance ] = true
9+
810# Configure Rails Environment
911ENV [ "RAILS_ENV" ] = "production"
1012require File . expand_path ( "../test/sandbox/config/environment.rb" , __dir__ )
@@ -13,6 +15,8 @@ module Performance
1315 require_relative "components/name_component"
1416 require_relative "components/nested_name_component"
1517 require_relative "components/inline_component"
18+ require_relative "components/complex_component"
19+ require_relative "components/nested_complex_component"
1620end
1721
1822class BenchmarksController < ActionController ::Base
@@ -21,13 +25,16 @@ class BenchmarksController < ActionController::Base
2125BenchmarksController . view_paths = [ File . expand_path ( "./views" , __dir__ ) ]
2226controller_view = BenchmarksController . new . view_context
2327
28+ controller_view . render ( Performance ::ComplexComponent . new ( name : "HI there" ) )
29+
2430Benchmark . ips do |x |
2531 x . time = 10
2632 x . warmup = 2
2733
2834 x . report ( "component" ) { controller_view . render ( Performance ::NameComponent . new ( name : "Fox Mulder" ) ) }
29- x . report ( "inline" ) { controller_view . render ( Performance ::InlineComponent . new ( name : "Fox Mulder" ) ) }
30- x . report ( "partial" ) { controller_view . render ( "partial" , name : "Fox Mulder" ) }
35+ # x.report("inline") { controller_view.render(Performance::InlineComponent.new(name: "Fox Mulder")) }
36+ # x.report("partial") { controller_view.render("partial", name: "Fox Mulder") }
37+ x . report ( "complex" ) { controller_view . render ( Performance ::ComplexComponent . new ( name : "Fox Mulder" ) ) }
3138
3239 x . compare!
3340end
0 commit comments