diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-09-10 02:47:05 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-09-10 02:47:05 +0000 |
commit | ed729d398699aadb60ac79e19c276d4854083530 (patch) | |
tree | 1acdc301e716d1cc6a7d86bb036defbc5a4ff4bd | |
parent | 6b398398b90aa5adc9f18fd206b9f6f31af8a653 (diff) | |
download | ruby-ed729d398699aadb60ac79e19c276d4854083530.tar.gz |
* gc.c (gc_stat_internal): rename `heap_used' to `heap_allocated_pages'.
ref: [Feature #9924]
* test/ruby/test_gc.rb: add constraints test for gc stat information.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | gc.c | 6 | ||||
-rw-r--r-- | test/ruby/test_gc.rb | 13 |
3 files changed, 23 insertions, 3 deletions
@@ -1,3 +1,10 @@ +Wed Sep 10 11:45:40 2014 Koichi Sasada <ko1@atdot.net> + + * gc.c (gc_stat_internal): rename `heap_used' to `heap_allocated_pages'. + ref: [Feature #9924] + + * test/ruby/test_gc.rb: add constraints test for gc stat information. + Wed Sep 10 11:31:16 2014 Koichi Sasada <ko1@atdot.net> * gc.c (gc_stat_internal): rename: @@ -6254,7 +6254,7 @@ size_t gc_stat_internal(VALUE hash_or_sym) { static VALUE sym_count; - static VALUE sym_heap_used, sym_heap_sorted_length, sym_heap_allocatable_pages; + static VALUE sym_heap_allocated_pages, sym_heap_sorted_length, sym_heap_allocatable_pages; static VALUE sym_heap_available_slots, sym_heap_live_slots, sym_heap_free_slots, sym_heap_final_slots; static VALUE sym_heap_marked_slots, sym_heap_swept_slots; static VALUE sym_heap_eden_pages, sym_heap_tomb_pages; @@ -6291,7 +6291,7 @@ gc_stat_internal(VALUE hash_or_sym) if (sym_count == 0) { #define S(s) sym_##s = ID2SYM(rb_intern_const(#s)) S(count); - S(heap_used); + S(heap_allocated_pages); S(heap_sorted_length); S(heap_allocatable_pages); S(heap_available_slots); @@ -6340,7 +6340,7 @@ gc_stat_internal(VALUE hash_or_sym) SET(count, objspace->profile.count); /* implementation dependent counters */ - SET(heap_used, heap_allocated_pages); + SET(heap_allocated_pages, heap_allocated_pages); SET(heap_sorted_length, heap_pages_sorted_length); SET(heap_allocatable_pages, heap_allocatable_pages); SET(heap_available_slots, objspace_available_slots(objspace)); diff --git a/test/ruby/test_gc.rb b/test/ruby/test_gc.rb index e9993ce26c..b6b8b5d7d8 100644 --- a/test/ruby/test_gc.rb +++ b/test/ruby/test_gc.rb @@ -111,6 +111,19 @@ class TestGc < Test::Unit::TestCase assert_raise(ArgumentError){ GC.stat(:invalid) } end + def test_stat_constraints + stat = GC.stat + assert_equal stat[:total_allocated_pages], stat[:heap_allocated_pages] + stat[:total_freed_pages] + assert_operator stat[:heap_sorted_length], :>=, stat[:heap_allocated_pages] + stat[:heap_allocatable_pages] + assert_equal stat[:heap_available_slots], stat[:heap_live_slots] + stat[:heap_free_slots] + stat[:heap_final_slots] + assert_equal stat[:heap_live_slots], stat[:total_allocated_objects] - stat[:total_freed_objects] - stat[:heap_final_slots] + + if use_rgengc? + assert_equal stat[:count], stat[:major_gc_count] + stat[:minor_gc_count] + assert_equal stat[:heap_allocated_pages], stat[:heap_eden_pages] + stat[:heap_tomb_pages] + end + end + def test_latest_gc_info GC.start count = GC.stat(:heap_free_slots) + GC.stat(:heap_allocatable_pages) * GC::INTERNAL_CONSTANTS[:HEAP_OBJ_LIMIT] |