Class: RegoValidate::Profiler
- Inherits:
-
Object
- Object
- RegoValidate::Profiler
- 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
-
#initialize(stderr: $stderr) ⇒ Profiler
constructor
A new instance of Profiler.
-
#measure(label) ⇒ Object
-
#report ⇒ void
Constructor Details
#initialize(stderr: $stderr) ⇒ Profiler
Returns a new instance of Profiler.
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
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 |
#report ⇒ void
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 |