Quicky if for easily timing chunks of code.
Getting Started
gem install quicky
Timing
Time anything
quicky = Quicky::Timer.new
quicky.time(:test1) do
sleep 2
end
Call time over and over again and when ready for results:
# Print average duration for all :test1 timings
p quicky.results(:test1).duration
# Print total duration for all :test1 timings
p quicky.results(:test1).total_duration
# Print longest duration for all :test1 timings
p quicky.results(:test1).max_duration
# Print shortest duration for all :test1 timings
p quicky.results(:test1).min_duration
Time in a loop
Good for performance testing.
quicky = Quicky::Timer.new
# This will loop 10 times
quicky.loop(:test2, 10) do |i|
puts 'sleeping'
sleep 1
end
Or loop for X seconds:
# This will loop for 10 seconds
quicky.loop_for(:test3, 10) do |i|
puts 'sleeping'
sleep 0.5
end
Looping Options
- warmup: X -- will throw out the first X results.
Results
You can get all the results with:
results = quicky.results
Or a single result:
result = quicky.results(:test1)
Or turn it into a straight up hash:
hash = quicky.results.to_hash
And even marshal a hash back into a quicky objects:
results = Quicky::ResultsHash.from_hash(hash)
Or merge several results hashes together (if you were doing some tests in parallel):
results.merge!(other_results)