Permalink
Browse files

Better GC stats

  • Loading branch information...
1 parent 35d2545 commit a9fea270f57544ce5afa6dc9eb2019dea17c7f48 @methodmissing methodmissing committed Oct 9, 2008
Showing with 26 additions and 3 deletions.
  1. +26 −3 test/gc_benchmark.rb
View
@@ -6,13 +6,36 @@
without_gc = Mysql.real_connect('localhost','root','','mysql')
without_gc.disable_gc = true
+$gc_stats = []
+
+def countable_gc?
+ GC.respond_to? :count
+end
+
+def gc_counts( label, scope )
+ $gc_stats << "GC #{scope} ( #{label} ) #{GC.count}"
+end
+
+def with_gc_counts( label )
+ gc_counts( label, 'before' ) if countable_gc?
+ yield
+ gc_counts( label, 'after' ) if countable_gc?
+end
+
n = 1000
+
Benchmark.bm do |x|
x.report( 'With GC' ) do
- n.times{ with_gc.c_async_query( 'SELECT * FROM user' ) }
+ with_gc_counts( 'With GC' ) do
+ n.times{ with_gc.c_async_query( 'SELECT * FROM user' ) }
+ end
end
GC.start
x.report( 'Without GC' ) do
- n.times{ without_gc.c_async_query( 'SELECT * FROM user' ) }
+ with_gc_counts( 'Without GC' ) do
+ n.times{ without_gc.c_async_query( 'SELECT * FROM user' ) }
+ end
end
-end
+end
+
+puts $gc_stats.join( ' | ' )

0 comments on commit a9fea27

Please sign in to comment.