Module: Vernier

Defined in:
lib/vernier.rb,
lib/vernier/hooks.rb,
lib/vernier/marker.rb,
lib/vernier/result.rb,
lib/vernier/autorun.rb,
lib/vernier/version.rb,
lib/vernier/collector.rb,
lib/vernier/middleware.rb,
lib/vernier/output/top.rb,
lib/vernier/stack_table.rb,
lib/vernier/thread_names.rb,
lib/vernier/output/firefox.rb,
lib/vernier/parsed_profile.rb,
lib/vernier/output/cpuprofile.rb,
lib/vernier/hooks/memory_usage.rb,
lib/vernier/output/file_listing.rb,
lib/vernier/stack_table_helpers.rb,
lib/vernier/hooks/active_support.rb,
lib/vernier/output/filename_filter.rb,
ext/vernier/vernier.cc

Defined Under Namespace

Modules: Autorun, Hooks, Marker, Output, StackTableHelpers Classes: Collector, Error, MemoryTracker, Middleware, ParsedProfile, Result, StackTable, ThreadNames

Constant Summary collapse

VERSION =
"1.8.1"

Class Method Summary collapse

Class Method Details

.memory_rssObject



59
60
61
# File 'ext/vernier/memory.cc', line 59

static VALUE rb_memory_rss(VALUE self) {
    return ULL2NUM(memory_rss());
}

.profile(mode: :wall, **collector_options) ⇒ Object Also known as: trace, run



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/vernier.rb', line 21

def self.profile(mode: :wall, **collector_options)
  collector = Vernier::Collector.new(mode, collector_options)
  collector.start

  result = nil
  begin
    yield collector
  ensure
    result = collector.stop
  end

  result
end

.start_profile(mode: :wall, **collector_options) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
# File 'lib/vernier.rb', line 42

def self.start_profile(mode: :wall, **collector_options)
  if @collector
    @collector.stop
    @collector = nil

    raise "profile already started, stopping..."
  end

  @collector = Vernier::Collector.new(mode, collector_options)
  @collector.start
end

.stop_profileObject



54
55
56
57
58
59
60
61
# File 'lib/vernier.rb', line 54

def self.stop_profile
  raise "profile not started" unless @collector

  result = @collector.stop
  @collector = nil

  result
end

.trace_retained(**profile_options, &block) ⇒ Object



63
64
65
# File 'lib/vernier.rb', line 63

def self.trace_retained(**profile_options, &block)
  profile(**profile_options.merge(mode: :retained), &block)
end