diff --git a/test/heap-dumps.tar.bz2 b/test/heap-dumps.tar.bz2 new file mode 100644 index 0000000..463391e Binary files /dev/null and b/test/heap-dumps.tar.bz2 differ diff --git a/test/leak.rb b/test/leak.rb new file mode 100644 index 0000000..0e243b2 --- /dev/null +++ b/test/leak.rb @@ -0,0 +1,28 @@ +require 'objspace' + +class Leaky + def self.leak + @leak ||= [] + end + + def doit + noleak = [] + + 50.times do + self.class.leak << 'leaked memory' + noleak << 'not leaked' + end + end +end + +def dump_heap(filename) + GC.start + File.open(filename, 'w') { |file| ObjectSpace.dump_all(output: file) } +end + +Leaky.new.doit +dump_heap('heap1.jsonl') +Leaky.new.doit +dump_heap('heap2.jsonl') +Leaky.new.doit +dump_heap('heap3.jsonl')