5
5
6
6
require "benchmark/ips"
7
7
8
+ Warning [ :performance ] = true
9
+
8
10
# Configure Rails Environment
9
11
ENV [ "RAILS_ENV" ] = "production"
10
12
require File . expand_path ( "../test/sandbox/config/environment.rb" , __dir__ )
@@ -13,6 +15,8 @@ module Performance
13
15
require_relative "components/name_component"
14
16
require_relative "components/nested_name_component"
15
17
require_relative "components/inline_component"
18
+ require_relative "components/complex_component"
19
+ require_relative "components/nested_complex_component"
16
20
end
17
21
18
22
class BenchmarksController < ActionController ::Base
@@ -21,13 +25,16 @@ class BenchmarksController < ActionController::Base
21
25
BenchmarksController . view_paths = [ File . expand_path ( "./views" , __dir__ ) ]
22
26
controller_view = BenchmarksController . new . view_context
23
27
28
+ controller_view . render ( Performance ::ComplexComponent . new ( name : "HI there" ) )
29
+
24
30
Benchmark . ips do |x |
25
31
x . time = 10
26
32
x . warmup = 2
27
33
28
34
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" ) ) }
31
38
32
39
x . compare!
33
40
end
0 commit comments