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 to
int’ (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