Class: RegoValidate::Profiler

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby/rego/cli.rb

Overview

Captures timing and memory statistics for policy evaluation.

Defined Under Namespace

Classes: ByteFormatter, Delta, Measurement, Sample, Snapshot

Instance Method Summary collapse

Constructor Details

#initialize(stderr: $stderr) ⇒ Profiler

Returns a new instance of Profiler.

Parameters:

  • stderr (IO) (defaults to: $stderr)


673
674
675
676
677
# File 'lib/ruby/rego/cli.rb', line 673

def initialize(stderr: $stderr)
  @stderr = stderr
  @samples = [] # @type var @samples: Array[Sample]
  @clock = Process.method(:clock_gettime)
end

Instance Method Details

#measure(label) ⇒ Object

Parameters:

  • label (String)

Returns:

  • (Object)


681
682
683
684
685
686
687
# File 'lib/ruby/rego/cli.rb', line 681

def measure(label)
  measurement = start_measurement(label)
  result = yield
  result
ensure
  finish_measurement(measurement)
end

#reportvoid

This method returns an undefined value.



690
691
692
693
694
695
696
# File 'lib/ruby/rego/cli.rb', line 690

def report
  return if samples.empty?

  stderr.puts("Profile:")
  report_samples
  report_hotspot
end