quicky 0.0.3 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.lock +1 -1
- data/README.md +51 -0
- data/lib/quicky/timer.rb +14 -0
- data/lib/quicky/version.rb +1 -1
- data/test/test_basics.rb +8 -4
- metadata +2 -2
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -0,0 +1,51 @@
|
|
1
|
+
Quicky if for easily timing chunks of code.
|
2
|
+
|
3
|
+
## Getting Started
|
4
|
+
|
5
|
+
gem install quicky
|
6
|
+
|
7
|
+
## Timing
|
8
|
+
|
9
|
+
### Time anything
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
quicky = Quicky::Timer.new
|
13
|
+
quicky.time(:test1) do
|
14
|
+
sleep 2
|
15
|
+
end
|
16
|
+
# Print average duration for all :test1 timings
|
17
|
+
p quicky.results(:test1).duration
|
18
|
+
# Print total duration for all :test1 timings
|
19
|
+
p quicky.results(:test1).total_duration
|
20
|
+
# Print longest duration for all :test1 timings
|
21
|
+
p quicky.results(:test1).max_duration
|
22
|
+
# Print shortest duration for all :test1 timings
|
23
|
+
p quicky.results(:test1).min_duration
|
24
|
+
|
25
|
+
### Time in a loop
|
26
|
+
|
27
|
+
Good for performance testing.
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
quicky = Quicky::Timer.new
|
31
|
+
# This will loop 10 times
|
32
|
+
quicky.loop(:test2, 10) do |i|
|
33
|
+
puts 'sleeping'
|
34
|
+
sleep 1
|
35
|
+
end
|
36
|
+
```
|
37
|
+
|
38
|
+
Or loop for X seconds:
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
# This will loop for 10 seconds
|
42
|
+
quicky.loop_for(:test3, 10) do |i|
|
43
|
+
puts 'sleeping'
|
44
|
+
sleep 0.5
|
45
|
+
end
|
46
|
+
```
|
47
|
+
|
48
|
+
#### Looping Options
|
49
|
+
|
50
|
+
- warmup: X -- will throw out the first X results.
|
51
|
+
|
data/lib/quicky/timer.rb
CHANGED
@@ -52,16 +52,22 @@ module Quicky
|
|
52
52
|
end
|
53
53
|
|
54
54
|
class TimeCollector
|
55
|
+
INT_MAX = ( (2 ** (32 - 2)) - 1 )
|
56
|
+
|
55
57
|
attr_accessor :name
|
56
58
|
def initialize(name)
|
57
59
|
@name = name
|
58
60
|
@collector = []
|
59
61
|
@total_duration = 0.0
|
62
|
+
@max_duration = 0.0
|
63
|
+
@min_duration = INT_MAX
|
60
64
|
end
|
61
65
|
|
62
66
|
def <<(val)
|
63
67
|
# pull out duration for totals
|
64
68
|
@total_duration += val.duration
|
69
|
+
@max_duration = val.duration if val.duration > @max_duration
|
70
|
+
@min_duration = val.duration if val.duration < @min_duration
|
65
71
|
@collector << val
|
66
72
|
end
|
67
73
|
|
@@ -73,6 +79,14 @@ module Quicky
|
|
73
79
|
@total_duration
|
74
80
|
end
|
75
81
|
|
82
|
+
def max_duration
|
83
|
+
@max_duration
|
84
|
+
end
|
85
|
+
|
86
|
+
def min_duration
|
87
|
+
@min_duration
|
88
|
+
end
|
89
|
+
|
76
90
|
def count
|
77
91
|
@collector.size
|
78
92
|
end
|
data/lib/quicky/version.rb
CHANGED
data/test/test_basics.rb
CHANGED
@@ -33,11 +33,15 @@ class TestBasics < TestBase
|
|
33
33
|
puts 'sleeping'
|
34
34
|
sleep 0.5
|
35
35
|
end
|
36
|
-
|
37
|
-
p
|
36
|
+
result = quicky.results(:test3)
|
37
|
+
p result.inspect
|
38
|
+
p result.duration
|
38
39
|
p quicky.results.count
|
39
|
-
assert
|
40
|
-
assert
|
40
|
+
assert result.duration >= 0.5 && result.duration < 1
|
41
|
+
assert result.total_duration >= 5
|
42
|
+
assert result.min_duration < 0.55 && result.min_duration > 0.1
|
43
|
+
assert result.max_duration > 0.5 && result.max_duration < 0.7
|
44
|
+
|
41
45
|
|
42
46
|
end
|
43
47
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quicky
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-08-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: test-unit
|