# \[Feature: trunk\] GC.time

**URL:** <https://www.ruby-forum.com/t/feature-trunk-gc-time/169900>\
**Category:** Development\
**Created:** [June 10, 2009, 3:50am UTC](https://www.ruby-forum.com/t/feature-trunk-gc-time/169900 "2009-06-10T03:50:57Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [June 10, 2009, 3:50am UTC](https://www.ruby-forum.com/t/feature-trunk-gc-time/169900/1 "2009-06-10T03:50:57Z")

</div>

e$B!!$5$5$@$G$9!%e(B

e$B!!:#$^$G2?2se(B GC e$B$r$d$C$?$+D4$Y$k$?$a$Ne(B GC.count  
e$B$H$$$&$N$,$"$k$N$G$9$,!$e(B  
e$B$3$l$^$G$Ne(B GC e$B$K$+$+$C$?;~4V$rJV$9e(B GC.time  
e$B$H$$$&%a%=%C%I$rDI2C$9$k$N$Oe(B  
e$B$I$&$G$7$g$&$+!%e(B

e$B!!e(BGC::Profiler  
e$B$r;H$($P!$;w$?$h$&$J$3$H$O=PMh$k$h$&$J5$$,$9$k$N$G$9$,!$e(B  
e$B$3$NMQES$N$?$a$@$1$K;H$&$N$O$A$g$C$H=E$$$7!$@07A$5$l$?J8;zNs$G$7$+7k2L$,e(B  
e$B\<h$l$J$$$N$G;H$$$E$i$$$N$Ge(B…e$B!%e(B

# Index: gc.c

— gc.c (e$B%j%S%8%g%se(B 23657)  
+++ gc.c (e$B:n6H%3%T!\<e(B)  
@@ -356,6 +356,7 @@  
} profile;  
struct gc\_list \*global\_list;  
unsigned int count;

- double time;  
int gc\_stress;  
} rb\_objspace\_t;

@@ -2207,6 +2208,8 @@  
{  
struct gc\_list \*list;  
rb\_thread\_t \*th = GET\_THREAD();

- double invoke\_time = getrusage\_time();

- INIT\_GC\_PROF\_PARAMS;

- 
- objspace-\>time += getrusage\_time() - invoke\_time;

- return Qtrue;  
}

@@ -2950,6 +2956,12 @@  
return UINT2NUM((&rb\_objspace)-\>count);  
}

+static VALUE  
+gc\_time(VALUE self)  
+{

- return DBL2NUM((&rb\_objspace)-\>time);  
+}
- 

#if CALC\_EXACT\_MALLOC\_SIZE  
/\*

- call-seq:  
@@ -3122,6 +3134,7 @@  
rb\_define\_singleton\_method(rb\_mGC, “stress”, gc\_stress\_get, 0);  
rb\_define\_singleton\_method(rb\_mGC, “stress=”, gc\_stress\_set, 1);  
rb\_define\_singleton\_method(rb\_mGC, “count”, gc\_count, 0);

- rb\_define\_singleton\_method(rb\_mGC, “time”, gc\_time, 0);  
rb\_define\_method(rb\_mGC, “garbage\_collect”, rb\_gc\_start, 0);

---

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [March 18, 2010, 2:30pm UTC](https://www.ruby-forum.com/t/feature-trunk-gc-time/169900/2 "2010-03-18T14:30:45Z")

</div>

e$B%A%1%C%He(B #1596 e$B$,99?7$5$l$^$7$?!#e(B (by Yusuke E.)

e$B%9%F!\<%?%9e(B Opene$B$+$ie(BClosede$B$KJQ99e(B

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

> e$B!!:#$^$G2?2se(B GC e$B$r$d$C$?$+D4$Y$k$?$a$Ne(B GC.count e$B$H$$$&$N$,$"$k$N$G$9$,!$e(B  
> e$B$3$l$^$G$Ne(B GC e$B$K$+$+$C$?;~4V$rJV$9e(B GC.time e$B$H$$$&%a%=%C%I$rDI2C$9$k$N$Oe(B  
> e$B$I$&$G$7$g$&$+!%e(B

#2480 e$B$Ge(B GC::Profiler.total\_time e$B$,F3F~$5$l$?$N$G!"e(Bclose  
e$B$7$^$9!#e(B

e$B$;$C$+$/$J$N$G2?2s$+;H$C$F$_$?7P83$r=q$$$F$$-$^$9$H!"@8$-$F$$$ke(B  
e$B%%V%8%‘%/%H$,BgNL$K$“$ke(B (= e$B0l2s$”$?$j$Ne(BGC  
e$B$K;~4V$,$+$+$ke(B) e$B$H$-$Oe(B  
e$B$=$l$J$j$N@:EY$,$G$k$N$G$9$,!"$=$N\>l8B$j$N%\*%V%8%’%/%H$,$$$C$Q$$e(B  
e$B@8@.$5$l$ke(B (= e$BC;$$e(B GC e$B$,$$$C$Q$$Av$ke(B)  
e$B$H$-$O8m:9$,C_@Q$5$l$FA4A3e(B  
e$B$"$F$K$J$i$J$$46$8$G$9!#e(B

## – Yusuke E. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

[http://redmine.ruby-lang.org/issues/show/1596](http://redmine.ruby-lang.org/issues/show/1596)
