Class: ActiveSupport::Notifications::Event
Relationships & Source Files | |
Inherits: | Object |
Defined in: | activesupport/lib/active_support/notifications/instrumenter.rb |
Class Method Summary
Instance Attribute Summary
Instance Method Summary
- #<<(event)
- #allocations
- #cpu_time
-
#duration
Returns the difference in milliseconds between when the execution of the event started and when it ended.
-
#finish!
Record information at the time this event finishes.
- #idle_time
- #parent_of?(event) ⇒ Boolean
-
#start!
Record information at the time this event starts.
Constructor Details
.new(name, start, ending, transaction_id, payload) ⇒ Event
# File 'activesupport/lib/active_support/notifications/instrumenter.rb', line 58
def initialize(name, start, ending, transaction_id, payload) @name = name @payload = payload.dup @time = start @transaction_id = transaction_id @end = ending @children = [] @cpu_time_start = 0 @cpu_time_finish = 0 @allocation_count_start = 0 @allocation_count_finish = 0 end
Instance Attribute Details
#children (readonly)
[ GitHub ]# File 'activesupport/lib/active_support/notifications/instrumenter.rb', line 55
attr_reader :name, :time, :end, :transaction_id, :children
#end (readonly)
[ GitHub ]# File 'activesupport/lib/active_support/notifications/instrumenter.rb', line 55
attr_reader :name, :time, :end, :transaction_id, :children
#name (readonly)
[ GitHub ]# File 'activesupport/lib/active_support/notifications/instrumenter.rb', line 55
attr_reader :name, :time, :end, :transaction_id, :children
#payload (rw)
[ GitHub ]# File 'activesupport/lib/active_support/notifications/instrumenter.rb', line 56
attr_accessor :payload
#time (readonly)
[ GitHub ]# File 'activesupport/lib/active_support/notifications/instrumenter.rb', line 55
attr_reader :name, :time, :end, :transaction_id, :children
#transaction_id (readonly)
[ GitHub ]Instance Method Details
#<<(event)
[ GitHub ]# File 'activesupport/lib/active_support/notifications/instrumenter.rb', line 119
def <<(event) @children << event end
#allocations
[ GitHub ]# File 'activesupport/lib/active_support/notifications/instrumenter.rb', line 99
def allocations @allocation_count_finish - @allocation_count_start end
#cpu_time
[ GitHub ]# File 'activesupport/lib/active_support/notifications/instrumenter.rb', line 87
def cpu_time (@cpu_time_finish - @cpu_time_start) * 1000 end
#duration
Returns the difference in milliseconds between when the execution of the event started and when it ended.
ActiveSupport::Notifications.subscribe('wait') do |*args|
@event = ActiveSupport::Notifications::Event.new(*args)
end
ActiveSupport::Notifications.instrument('wait') do
sleep 1
end
@event.duration # => 1000.138
#finish!
Record information at the time this event finishes
# File 'activesupport/lib/active_support/notifications/instrumenter.rb', line 79
def finish! @cpu_time_finish = now_cpu @end = now @allocation_count_finish = now_allocations end
#idle_time
#parent_of?(event) ⇒ Boolean
# File 'activesupport/lib/active_support/notifications/instrumenter.rb', line 123
def parent_of?(event) @children.include? event end
#start!
Record information at the time this event starts
# File 'activesupport/lib/active_support/notifications/instrumenter.rb', line 72
def start! @time = now @cpu_time_start = now_cpu @allocation_count_start = now_allocations end