bleak_house 4.5 → 4.6
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/CHANGELOG +2 -0
- data/bleak_house.gemspec +2 -2
- data/ext/snapshot.c +5 -4
- data/lib/bleak_house.rb +14 -0
- data/test/unit/test_bleak_house.rb +7 -1
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
data/CHANGELOG
CHANGED
data/bleak_house.gemspec
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Gem::Specification.new do |s|
|
|
4
4
|
s.name = %q{bleak_house}
|
|
5
|
-
s.version = "4.
|
|
5
|
+
s.version = "4.6"
|
|
6
6
|
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
|
8
8
|
s.authors = ["Evan Weaver"]
|
|
9
9
|
s.cert_chain = ["/Users/eweaver/p/configuration/gem_certificates/evan_weaver-original-public_cert.pem"]
|
|
10
|
-
s.date = %q{2009-
|
|
10
|
+
s.date = %q{2009-10-02}
|
|
11
11
|
s.default_executable = %q{bleak}
|
|
12
12
|
s.description = %q{A library for finding memory leaks.}
|
|
13
13
|
s.email = %q{}
|
data/ext/snapshot.c
CHANGED
|
@@ -14,9 +14,10 @@ static VALUE heaps_length(VALUE self) {
|
|
|
14
14
|
return INT2FIX(rb_gc_heaps_length());
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
/*
|
|
18
|
-
static VALUE
|
|
17
|
+
/* Inner method; call BleakHouse.snapshot instead. */
|
|
18
|
+
static VALUE ext_snapshot(VALUE self, VALUE _logfile, VALUE _gc_runs) {
|
|
19
19
|
Check_Type(_logfile, T_STRING);
|
|
20
|
+
Check_Type(_gc_runs, T_FIXNUM);
|
|
20
21
|
|
|
21
22
|
RVALUE *obj, *obj_end;
|
|
22
23
|
st_table_entry *sym;
|
|
@@ -40,7 +41,7 @@ static VALUE snapshot(VALUE self, VALUE _logfile) {
|
|
|
40
41
|
int i;
|
|
41
42
|
char * chr;
|
|
42
43
|
|
|
43
|
-
for (i = 0; i <
|
|
44
|
+
for (i = 0; i < FIX2INT(_gc_runs); i++) {
|
|
44
45
|
/* request GC run */
|
|
45
46
|
rb_funcall(rb_mGC, rb_intern("start"), 0);
|
|
46
47
|
rb_thread_schedule();
|
|
@@ -144,7 +145,7 @@ void
|
|
|
144
145
|
Init_snapshot()
|
|
145
146
|
{
|
|
146
147
|
rb_mB = rb_define_module("BleakHouse");
|
|
147
|
-
rb_define_singleton_method(rb_mB, "
|
|
148
|
+
rb_define_singleton_method(rb_mB, "ext_snapshot", ext_snapshot, 2);
|
|
148
149
|
rb_define_singleton_method(rb_mB, "heaps_used", heaps_used, 0);
|
|
149
150
|
rb_define_singleton_method(rb_mB, "heaps_length", heaps_length, 0);
|
|
150
151
|
}
|
data/lib/bleak_house.rb
CHANGED
|
@@ -6,3 +6,17 @@ end
|
|
|
6
6
|
RUBY_VERSION = `ruby -v`.split(" ")[1]
|
|
7
7
|
require 'snapshot'
|
|
8
8
|
require 'bleak_house/hook'
|
|
9
|
+
|
|
10
|
+
class << BleakHouse
|
|
11
|
+
private :ext_snapshot
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
module BleakHouse
|
|
15
|
+
|
|
16
|
+
# Walk the live, instrumented objects on the heap and write them to
|
|
17
|
+
# <tt>logfile</tt>. Accepts an optional number of GC runs to perform
|
|
18
|
+
# before dumping the heap.
|
|
19
|
+
def self.snapshot(logfile, gc_runs = 3)
|
|
20
|
+
ext_snapshot(logfile, gc_runs)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -18,13 +18,19 @@ class BleakHouseTest < Test::Unit::TestCase
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def test_snapshot
|
|
21
|
-
symbol_count = Symbol.all_symbols.size
|
|
22
21
|
BleakHouse.snapshot(FILE)
|
|
23
22
|
assert File.exist?(FILE)
|
|
24
23
|
assert BleakHouse.heaps_used > 0
|
|
25
24
|
assert BleakHouse.heaps_length > 0
|
|
26
25
|
end
|
|
27
26
|
|
|
27
|
+
def test_snapshot_gc_runs
|
|
28
|
+
BleakHouse.snapshot(FILE, 0)
|
|
29
|
+
assert File.exist?(FILE)
|
|
30
|
+
assert BleakHouse.heaps_used > 0
|
|
31
|
+
assert BleakHouse.heaps_length > 0
|
|
32
|
+
end
|
|
33
|
+
|
|
28
34
|
def test_exception
|
|
29
35
|
assert_raises(RuntimeError) do
|
|
30
36
|
BleakHouse.snapshot("/")
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bleak_house
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: "4.
|
|
4
|
+
version: "4.6"
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Evan Weaver
|
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
|
30
30
|
yZ0=
|
|
31
31
|
-----END CERTIFICATE-----
|
|
32
32
|
|
|
33
|
-
date: 2009-
|
|
33
|
+
date: 2009-10-02 00:00:00 -07:00
|
|
34
34
|
default_executable:
|
|
35
35
|
dependencies: []
|
|
36
36
|
|
metadata.gz.sig
CHANGED
|
Binary file
|