Class: RegoValidate::Profiler
- Inherits:
-
Object
- Object
- RegoValidate::Profiler
- Defined in:
- lib/ruby/rego/cli/profiling.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.
175 176 177 178 179 |
# File 'lib/ruby/rego/cli/profiling.rb', line 175 def initialize(stderr: $stderr) @stderr = stderr @samples = [] # @type var @samples: Array[Sample] @clock = Process.method(:clock_gettime) end |
Instance Method Details
#measure(label) ⇒ Object
183 184 185 186 187 188 189 |
# File 'lib/ruby/rego/cli/profiling.rb', line 183 def measure(label) measurement = start_measurement(label) result = yield result ensure finish_measurement(measurement) end |
#report ⇒ void
This method returns an undefined value.
192 193 194 195 196 197 198 |
# File 'lib/ruby/rego/cli/profiling.rb', line 192 def report return if samples.empty? stderr.puts("Profile:") report_samples report_hotspot end |