GC::profiler.report for large memory

e$B%P%0$H8@$C$F$$$$$N$+J,$+$j$^$;$s$,!"e(B
e$B$?$/$5$s%a%b%j!<$r;H$C$F$+$ie(B
GC::profiler.reporte$B$r8F$V$H!"e(B
in report': integer 6411976704 too big to convert toint’ (RangeError)
e$B$H$$$C$F$*$3$i$l$^$7$?!#e(B
e$BIi$N?t$O$J$5$=$&$J$N$G!"e(Bunsigned longe$B$K$9$k%Q%C%A$r:n$j$^e(B
e$B$7$?!#e(B
e$B7k2L$Oe(B
GC 4 invokes.
Index Invoke Time(sec) Use Size(byte) Total Size
(byte) Total Object GC Time(ms)
1 63.975 800157160
6411943936 160063786 6110.07100000000536965672
e$B$N$h$&$K=P$F$$$^$9!#0l2s$7$+$J$$$N$O!"e(BGC.disable; e$B;E;v0le(B
e$BGUe(B;GC.enable;GC.start
e$B$N%7!<%1%s%9$G<B9T$7$F$$$k$N$G$$$$$G$9!#e(B

e$BDd;_;~4V$O$=$l$J$j$K$"$C$F$bNI$$$1$Ie(BN Gbytese$B$^$Ge(BGC

e$B$7$J$$$H$+$G!"%9%k!<%W%C%H$,>e$,$k$H4r$7$$?M!#e(B
GC 4 invokese$B$N#42s$C$F8@$&$N$Oe(BGC.disablee$B$N$h$&$J8F$S=P$7$be(B
e$B?t$($F$$$k$s$G$9$+$M!)!)e(B

$ diff -u ruby-1.9.2-rc2/gc.c ruby-1.9.2-rc2p/gc.c
— ruby-1.9.2-rc2/gc.c 2010-06-06 23:46:39.000000000 +0900
+++ ruby-1.9.2-rc2p/gc.c 2010-08-16 13:31:08.000000000 +0900
@@ -3091,11 +3091,11 @@
rb_str_cat2(result, “Index Invoke Time(sec) Use Size
(byte) Total Size(byte) Total Object
GC Time(ms)\n”);
for (i = 0; i < (int)RARRAY_LEN(record); i++) {
VALUE r = RARRAY_PTR(record)[i];

  •       rb_str_catf(result, "%5d %19.3f %20d %20d %20d %30.20f\n",
    
  •       rb_str_catf(result, "%5d %19.3f %20lu %20lu %20lu %30.20f
    

\n",
i+1, NUM2DBL(rb_hash_aref(r, ID2SYM(rb_intern
(“GC_INVOKE_TIME”)))),

  •                   NUM2INT(rb_hash_aref(r, ID2SYM(rb_intern
    

(“HEAP_USE_SIZE”)))),

  •                   NUM2INT(rb_hash_aref(r, ID2SYM(rb_intern
    

(“HEAP_TOTAL_SIZE”)))),

  •                   NUM2INT(rb_hash_aref(r, ID2SYM(rb_intern
    

(“HEAP_TOTAL_OBJECTS”)))),

  •                   NUM2ULONG(rb_hash_aref(r, ID2SYM(rb_intern
    

(“HEAP_USE_SIZE”)))),

  •                   NUM2ULONG(rb_hash_aref(r, ID2SYM(rb_intern
    

(“HEAP_TOTAL_SIZE”)))),

  •                   NUM2ULONG(rb_hash_aref(r, ID2SYM(rb_intern
    

(“HEAP_TOTAL_OBJECTS”)))),
NUM2DBL(rb_hash_aref(r, ID2SYM(rb_intern
(“GC_TIME”))))*1000);
}
#if GC_PROFILE_MORE_DETAIL


Tomoaki NISHIYAMA

Advanced Science Research Center,
Kanazawa University,
13-1 Takara-machi,
Kanazawa, 920-0934, Japan

nari e$B$G$9!#e(B

2010e$BG/e(B8e$B7ne(B16e$BF|e(B14:18 Tomoaki NISHIYAMA
[email protected]:

1 63.975 800157160 6411943936
160063786 6110.07100000000536965672
e$B$N$h$&$K=P$F$$$^$9!#0l2s$7$+$J$$$N$O!"e(BGC.disable; e$B;E;v0lGUe(B;GC.enable;GC.start
e$B$N%7!<%1%s%9$G<B9T$7$F$$$k$N$G$$$$$G$9!#e(B

e$BDd;_;~4V$O$=$l$J$j$K$“$C$F$bNI$$$1$Ie(BN Gbytese$B$^$Ge(BGCe$B$7$J$$$H$+$G!”%9%k!<%W%C%H$,>e$,$k$H4r$7$$?M!#e(B

e$B$4Js9p$"$j$,$H$&$4$6$$$^$9!#%Q%C%A$rEv$F$F$*$-$^$9!#e(B

GC 4 invokese$B$N#42s$C$F8@$&$N$Oe(BGC.disablee$B$N$h$&$J8F$S=P$7$b?t$($F$$$k$s$G$9$+$M!)!)e(B

e$B$3$3$OAme(BGCe$B2s?t$rI=<($7$F$$$^$9!Je(BGC.counte$B$HF1$8$G$9$M!K!#e(B
GC.disablee$B$NA0$Ke(B3e$B2se(BGCe$B$,F0$$$F$$$k$h$&$G$9!#e(B