allocation_tracer 0.4.2 → 0.4.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 074616cf05a960aad7ae31bef26b74114a57a244
4
- data.tar.gz: c1d299d0e76a959847cb29e5a6b5a1ff937aeb21
3
+ metadata.gz: 3dc53bab30ca77dc661da7cc1d75b0c2ac07881f
4
+ data.tar.gz: cf61afd7c08c2898d4454002679f29c024e83646
5
5
  SHA512:
6
- metadata.gz: 9c61c33f45023056481a8a49c428c93b31c8c64f22846b8bb3db5434c6c6a6d8f74ec8f6d60fed9e72777bc4f41442f8a0569ee0934097c11639113b9bbc24e4
7
- data.tar.gz: d25df919f3141ce25176889538c0371b27fd3a4c66559e6455b26156a3e17a12dcba099763147d41e570a72418399f37bf7aec2c13f9d3c26ee1d3276db018d6
6
+ metadata.gz: 859f36690133321cc4de4378e115de5ecd6a0a7e0b3793fa728fe41c9c5ad4e918025337b844410c8fca43b8c310e37e0cf785ff2658843ebacc68a0e77c56c3
7
+ data.tar.gz: defdaa389a03387009e8b29b6232252349db69a035a6618ec27a462d6d45091a7a0a9dc37ef483243d34bf49d36d0b7bab010d5af9c9442a678b55d3fc182fec
data/README.md CHANGED
@@ -63,7 +63,7 @@ will show
63
63
  In this case,
64
64
  * 50,000 objects are created at `test.rb:6' and
65
65
  * 5 old objects created.
66
- * 44,290 is total age of objects created at this line (average age of object created at this line is 50000/44290 = 0.8858).
66
+ * 44,290 is total age of objects created at this line (average age of object created at this line is 44290/50000 = 0.8858).
67
67
  * 0 is minimum age
68
68
  * 6 is maximum age.
69
69
 
@@ -154,6 +154,31 @@ test.rb 7 50000 7 41497 0 5 0
154
154
 
155
155
  (tab separated colums)
156
156
 
157
+ ### Total Allocations / Free
158
+
159
+ Allocation tracer collects the total number of allocations and frees during the
160
+ `trace` block. After the block finishes executing, you can examine the total
161
+ number of allocations / frees per object type like this:
162
+
163
+ ```ruby
164
+ require 'allocation_tracer'
165
+
166
+ ObjectSpace::AllocationTracer.trace do
167
+ 1000.times {
168
+ ["foo", {}]
169
+ }
170
+ end
171
+ p allocated: ObjectSpace::AllocationTracer.allocated_count_table
172
+ p freed: ObjectSpace::AllocationTracer.freed_count_table
173
+ ```
174
+
175
+ The output of the script will look like this:
176
+
177
+ ```
178
+ {:allocated=>{:T_NONE=>0, :T_OBJECT=>0, :T_CLASS=>0, :T_MODULE=>0, :T_FLOAT=>0, :T_STRING=>1000, :T_REGEXP=>0, :T_ARRAY=>1000, :T_HASH=>1000, :T_STRUCT=>0, :T_BIGNUM=>0, :T_FILE=>0, :T_DATA=>0, :T_MATCH=>0, :T_COMPLEX=>0, :T_RATIONAL=>0, :unknown=>0, :T_NIL=>0, :T_TRUE=>0, :T_FALSE=>0, :T_SYMBOL=>0, :T_FIXNUM=>0, :T_UNDEF=>0, :T_NODE=>0, :T_ICLASS=>0, :T_ZOMBIE=>0}}
179
+ {:freed=>{:T_NONE=>0, :T_OBJECT=>0, :T_CLASS=>0, :T_MODULE=>0, :T_FLOAT=>0, :T_STRING=>1871, :T_REGEXP=>41, :T_ARRAY=>226, :T_HASH=>7, :T_STRUCT=>41, :T_BIGNUM=>0, :T_FILE=>50, :T_DATA=>25, :T_MATCH=>47, :T_COMPLEX=>0, :T_RATIONAL=>0, :unknown=>0, :T_NIL=>0, :T_TRUE=>0, :T_FALSE=>0, :T_SYMBOL=>0, :T_FIXNUM=>0, :T_UNDEF=>0, :T_NODE=>932, :T_ICLASS=>0, :T_ZOMBIE=>0}}
180
+ ```
181
+
157
182
  ### Lifetime table
158
183
 
159
184
  You can collect lifetime statistics with
@@ -190,7 +215,7 @@ current age.
190
215
 
191
216
  ## Contributing
192
217
 
193
- 1. Fork it ( http://github.com/<my-github-username>/allocation_tracer/fork )
218
+ 1. Fork it ( http://github.com/ko1/allocation_tracer/fork )
194
219
  2. Create your feature branch (`git checkout -b my-new-feature`)
195
220
  3. Commit your changes (`git commit -am 'Add some feature'`)
196
221
  4. Push to the branch (`git push origin my-new-feature`)
@@ -12,7 +12,7 @@ module ObjectSpace::AllocationTracer
12
12
  }
13
13
  end
14
14
 
15
- def self.collect_lifetime_talbe
15
+ def self.collect_lifetime_table
16
16
  ObjectSpace::AllocationTracer.lifetime_table_setup true
17
17
 
18
18
  if block_given?
@@ -30,7 +30,7 @@ module ObjectSpace::AllocationTracer
30
30
  end
31
31
  end
32
32
 
33
- def self.collect_lifetime_talbe_stop
33
+ def self.collect_lifetime_table_stop
34
34
  ObjectSpace::AllocationTracer.stop
35
35
  result = ObjectSpace::AllocationTracer.lifetime_table
36
36
  ObjectSpace::AllocationTracer.lifetime_table_setup false
@@ -1,3 +1,3 @@
1
1
  module ObjectSpace::AllocationTracer
2
- VERSION = "0.4.2"
2
+ VERSION = "0.4.3"
3
3
  end
@@ -235,9 +235,9 @@ describe ObjectSpace::AllocationTracer do
235
235
  end
236
236
  end
237
237
 
238
- describe 'ObjectSpace::AllocationTracer.collect_lifetime_talbe' do
238
+ describe 'ObjectSpace::AllocationTracer.collect_lifetime_table' do
239
239
  it 'should collect lifetime table' do
240
- table = ObjectSpace::AllocationTracer.collect_lifetime_talbe do
240
+ table = ObjectSpace::AllocationTracer.collect_lifetime_table do
241
241
  100000.times{
242
242
  Object.new
243
243
  ''
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: allocation_tracer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Koichi Sasada
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-07 00:00:00.000000000 Z
11
+ date: 2015-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,11 +108,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
108
  version: '0'
109
109
  requirements: []
110
110
  rubyforge_project:
111
- rubygems_version: 2.4.2
111
+ rubygems_version: 2.4.5
112
112
  signing_key:
113
113
  specification_version: 4
114
114
  summary: allocation_tracer gem adds ObjectSpace::AllocationTracer module.
115
115
  test_files:
116
116
  - spec/allocation_tracer_spec.rb
117
117
  - spec/spec_helper.rb
118
- has_rdoc: