lib/rbbt/util/misc/development.rb in rbbt-util-5.13.31 vs lib/rbbt/util/misc/development.rb in rbbt-util-5.13.32
- old
+ new
@@ -218,6 +218,29 @@
total = ary.length
p = random_sample_in_range(total, size)
ary.values_at *p
end
end
+
+ def self.object_delta(*args)
+ res, delta = nil, nil
+ Thread.exclusive do
+ pre = Set.new
+ delta = Set.new
+
+ GC.start
+ ObjectSpace.each_object(*args) do |o|
+ pre.add o
+ end
+
+ res = yield
+
+ GC.start
+ ObjectSpace.each_object(*args) do |o|
+ delta.add o unless pre.include? o
+ end
+
+ end
+ Log.info "Delta: #{delta.inspect}"
+ res
+ end
end