memory_leak_finder 0.0.1

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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/memory_leak_finder.rb +24 -0
  3. metadata +45 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0d4b703194345ef2413c161882b4aee8c70e3497
4
+ data.tar.gz: 5d7bf8846bb37547447d9087df4ec2374500c87a
5
+ SHA512:
6
+ metadata.gz: bcb255460fff73f6a154ec3020aeee9bb7fc0e69d93db587d41a67cdc2790cdde8e984acdbf44427f020d3a3ac84b4a99e52ea6684541cc826bd3d1a2889f45c
7
+ data.tar.gz: 7a03792430cd0545449e3110dc009145a9bc848ba2ed86e7fd57f91c60c4c5327180e93d333efce4b33c2b8ea5038079d8533c5856fd46cac2329b95ee5282b1
@@ -0,0 +1,24 @@
1
+ require 'objspace'
2
+
3
+ module MemoryLeakFinder
4
+ def self.trace
5
+ raise "Block required" unless block_given?
6
+
7
+ gc_params = {full_mark: true, immediate_sweep: true}.freeze
8
+
9
+ ObjectSpace.trace_object_allocations_clear
10
+ ObjectSpace.trace_object_allocations do
11
+ yield
12
+ end
13
+
14
+ GC.start(gc_params)
15
+
16
+ leaks = false
17
+ ObjectSpace.each_object do |o|
18
+ next unless ObjectSpace.allocation_sourcefile(o)
19
+ leaks = true
20
+ puts "LEAK! #{o.class} #{o.inspect} allocated at #{ObjectSpace.allocation_sourcefile(o)}:#{ObjectSpace.allocation_sourceline(o)}: approx. #{ObjectSpace.memsize_of(o)} bytes"
21
+ end
22
+ leaks
23
+ end
24
+ end
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: memory_leak_finder
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Markus Fenske
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-01-03 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A simple gem to find memory leaks
14
+ email: markus.fenske@blacklane.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/memory_leak_finder.rb
20
+ homepage: http://rubygems.org/gems/memory_leak_finder
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubyforge_project:
40
+ rubygems_version: 2.2.0
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: Memory leak finder
44
+ test_files: []
45
+ has_rdoc: