benelux 0.5.5 → 0.5.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,11 @@
1
1
  BENELUX, CHANGES
2
2
 
3
+ #### 0.5.6 (2010-02-10) ###############################
4
+
5
+ * ADDED: Benelux::Tms#to_f
6
+ * ADDED: Benelux.timeline_chunk, Benelux.timeline_updates
7
+ * ADDED: Calculator#to_json
8
+
3
9
  #### 0.5.5 (2010-01-16) ###############################
4
10
 
5
11
  * ADDED: Benelux.bm
@@ -5,6 +5,7 @@
5
5
 
6
6
  == Features
7
7
 
8
+ * A replacement for Benchmark.measure
8
9
  * Create timers for any Ruby method
9
10
  * Store arbitrary messages
10
11
  * Granular statistics
@@ -14,19 +15,23 @@
14
15
 
15
16
  require 'benelux'
16
17
 
17
- # Similar to Benchmark::Tms with the addition of
18
- # standard deviation, mean value, and total, for
19
- # each of the times.
18
+ # Similar to Benchmark.measure but you specify the
19
+ # number of times to run the block and the number
20
+ # repetitions.
20
21
  tms = Benelux.bm(1000000, 5) do
21
22
  rand
22
23
  end
23
-
24
+
25
+ # Similar to Benchmark::Tms with the addition of
26
+ # standard deviation, mean value, and total, for
27
+ # each of the times.
24
28
  tms.samples # => 5
25
29
  tms.real # => 0.45
26
30
  tms.real.sd # => 0.04
27
31
  tms.utime # => 0.44
28
32
  tms.utime.sd # => 0.02
29
33
 
34
+
30
35
  == Installation
31
36
 
32
37
  Get it in one of the following ways:
@@ -1,7 +1,7 @@
1
1
  @spec = Gem::Specification.new do |s|
2
2
  s.name = "benelux"
3
3
  s.rubyforge_project = 'benelux'
4
- s.version = "0.5.5"
4
+ s.version = "0.5.6"
5
5
  s.summary = "Benelux: A mad way to time Ruby codes"
6
6
  s.description = s.summary
7
7
  s.author = "Delano Mandelbaum"
@@ -5,7 +5,7 @@ require 'thwait'
5
5
  require 'selectable'
6
6
 
7
7
  module Benelux
8
- VERSION = "0.5.5"
8
+ VERSION = "0.5.6"
9
9
  NOTSUPPORTED = [Class, Object, Kernel]
10
10
 
11
11
  class BeneluxError < RuntimeError; end
@@ -27,12 +27,16 @@ module Benelux
27
27
  attr_reader :packed_methods
28
28
  attr_reader :tracks
29
29
  attr_reader :timeline
30
+ attr_reader :timeline_chunk
31
+ attr_reader :timeline_updates
30
32
  attr_reader :known_threads
31
33
  end
32
34
 
33
35
  @packed_methods = {}
34
36
  @tracks = SelectableHash.new
35
37
  @timeline = Timeline.new
38
+ @timeline_chunk = Timeline.new # See: update_global_timeline
39
+ @timeline_updates = 0
36
40
  @known_threads = []
37
41
  @processed_dead_threads = []
38
42
 
@@ -99,8 +103,12 @@ module Benelux
99
103
  end
100
104
  }
101
105
  Benelux.ld [:update_global_timeline, dthreads.size, rthreads.size, dtimelines.size].inspect
102
- tl = Benelux.timeline.merge! *dtimelines
106
+ # Keep track of this update separately
107
+ @timeline_chunk = Benelux::Timeline.new
108
+ @timeline_chunk.merge! *dtimelines
103
109
  @processed_dead_threads.push *dthreads
110
+ tl = Benelux.timeline.merge! Benelux.timeline_chunk
111
+ @timeline_updates += 1
104
112
  tl
105
113
  end
106
114
  end
@@ -173,6 +181,7 @@ module Benelux
173
181
  # See Benelux::Stats::Calculator
174
182
  #
175
183
  class Tms < Struct.new :label, :real, :cstime, :cutime, :stime, :utime, :total
184
+ # TODO: integrate w/ http://github.com/copiousfreetime/hitimes
176
185
  attr_reader :samples
177
186
  # +tms+ is a Benchmark::Tms object
178
187
  def initialize tms=nil
@@ -191,8 +200,14 @@ module Benelux
191
200
  self.send(n).sample tms.send(n) || 0
192
201
  }
193
202
  end
203
+ def to_f
204
+ total.mean.to_f
205
+ end
206
+ def to_i
207
+ total.mean.to_i
208
+ end
194
209
  def to_s
195
- total.mean
210
+ total.mean.to_s
196
211
  end
197
212
  def inspect
198
213
  fields = members.collect { |f|
@@ -216,6 +216,14 @@ module Benelux
216
216
  end
217
217
  end
218
218
 
219
+ def to_hash
220
+ { :min => min, :mean => mean, :max => max, :sd => sd, :n => n }
221
+ end
222
+
223
+ def to_json
224
+ to_hash.to_json
225
+ end
226
+
219
227
  def ==(other)
220
228
  return false unless self.class == other.class
221
229
  a=([@sum, @min, @max, @n, @sumsq] -
@@ -50,6 +50,7 @@ module Benelux
50
50
  end
51
51
 
52
52
  def duration
53
+ return 0 if self.last.nil?
53
54
  self.last - self.first
54
55
  end
55
56
 
@@ -1,7 +1,7 @@
1
1
  group "Benelux"
2
2
 
3
3
  library :benelux, 'lib'
4
- tryouts "Reporter" do
4
+ xtryouts "Reporter" do
5
5
  set :reporter, Benelux::Reporter.new
6
6
 
7
7
  drill "1", true do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: benelux
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.5
4
+ version: 0.5.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delano Mandelbaum
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-16 00:00:00 -05:00
12
+ date: 2010-02-10 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency