diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | lib/benchmark.rb | 20 |
2 files changed, 14 insertions, 10 deletions
@@ -1,3 +1,7 @@ +Sun Aug 24 11:09:29 2014 Eric Wong <e@80x24.org> + + * lib/benchmark.rb (measure): reduce allocations as in r47260 + Sun Aug 24 10:35:54 2014 Pete Higgins <pete@peterhiggins.org> * lib/benchmark.rb (module Benchmark): define BENCHMARK_CLOCK diff --git a/lib/benchmark.rb b/lib/benchmark.rb index eff6cb12ef..7c03c4a195 100644 --- a/lib/benchmark.rb +++ b/lib/benchmark.rb @@ -270,14 +270,22 @@ module Benchmark STDOUT.sync = sync unless sync.nil? end + # :stopdoc: + if defined?(Process::CLOCK_MONOTONIC) + BENCHMARK_CLOCK = Process::CLOCK_MONOTONIC + else + BENCHMARK_CLOCK = Process::CLOCK_REALTIME + end + # :startdoc: + # # Returns the time used to execute the given block as a # Benchmark::Tms object. # def measure(label = "") # :yield: - t0, r0 = Process.times, Time.now + t0, r0 = Process.times, Process.clock_gettime(BENCHMARK_CLOCK) yield - t1, r1 = Process.times, Time.now + t1, r1 = Process.times, Process.clock_gettime(BENCHMARK_CLOCK) Benchmark::Tms.new(t1.utime - t0.utime, t1.stime - t0.stime, t1.cutime - t0.cutime, @@ -286,14 +294,6 @@ module Benchmark label) end - # :stopdoc: - if defined?(Process::CLOCK_MONOTONIC) - BENCHMARK_CLOCK = Process::CLOCK_MONOTONIC - else - BENCHMARK_CLOCK = Process::CLOCK_REALTIME - end - # :startdoc: - # # Returns the elapsed real time used to execute the given block. # |