[前][次][番号順一覧][スレッド一覧]

ruby-changes:7007

From: nari <ko1@a...>
Date: Tue, 12 Aug 2008 16:24:43 +0900 (JST)
Subject: [ruby-changes:7007] Ruby:r18525 (trunk): * gc.c (gc_profile_result): use rb_str_catf.

nari	2008-08-12 16:24:30 +0900 (Tue, 12 Aug 2008)

  New Revision: 18525

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=18525

  Log:
    * gc.c (gc_profile_result): use rb_str_catf.

  Modified files:
    trunk/ChangeLog
    trunk/gc.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 18524)
+++ ChangeLog	(revision 18525)
@@ -1,3 +1,7 @@
+Tue Aug 12 16:23:32 2008  Narihiro Nakamura  <authorNari@g...>
+
+	* gc.c (gc_profile_result): use rb_str_catf.
+
 Tue Aug 12 16:13:45 2008  Tanaka Akira  <akr@f...>
 
 	* transcode_data.h (TRANSCODE_ERROR): removed.
Index: gc.c
===================================================================
--- gc.c	(revision 18524)
+++ gc.c	(revision 18525)
@@ -2709,24 +2709,20 @@
 {
     rb_objspace_t *objspace = &rb_objspace;
     VALUE record = gc_profile_record_get();
-    VALUE result = rb_str_new2("");
+    VALUE result;
     int i;
-    char buf[1024];
     
-    if(objspace->profile.run && objspace->profile.count) {
-	sprintf(buf, "GC %d invokes.\n", NUM2INT(gc_count(0)));
-	rb_str_cat2(result, buf);
+    if (objspace->profile.run && objspace->profile.count) {
+	result = rb_sprintf("GC %d invokes.\n", NUM2INT(gc_count(0)));
 	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++) {
+	for (i = 0; i < (int)RARRAY_LEN(record); i++) {
 	    VALUE r = RARRAY_PTR(record)[i];
-	    memset(buf, 0, 1024);
-	    sprintf(buf, "%5d %19.3f %20d %20d %20d %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")))),
-	    		NUM2DBL(rb_hash_aref(r, ID2SYM(rb_intern("GC_TIME"))))*100);
-	    rb_str_cat2(result, buf);
+	    rb_str_catf(result, "%5d %19.3f %20d %20d %20d %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")))),
+			NUM2DBL(rb_hash_aref(r, ID2SYM(rb_intern("GC_TIME"))))*100);
 	}
 #if GC_PROFILE_MORE_DETAIL
 	rb_str_cat2(result, "\n\n");
@@ -2734,18 +2730,19 @@
 	rb_str_cat2(result, "Index Allocate Increase    Allocate Limit  Use Slot  Have Finalize             Mark Time(ms)            Sweep Time(ms)\n");
 	for (i = 0; i < (int)RARRAY_LEN(record); i++) {
 	    VALUE r = RARRAY_PTR(record)[i];
-	    memset(buf, 0, 1024);
-	    sprintf(buf, "%5d %17d %17d %9d %14s %25.20f %25.20f\n",
+	    rb_str_catf(result, "%5d %17d %17d %9d %14s %25.20f %25.20f\n",
 			i+1, NUM2INT(rb_hash_aref(r, ID2SYM(rb_intern("ALLOCATE_INCREASE")))),
 			NUM2INT(rb_hash_aref(r, ID2SYM(rb_intern("ALLOCATE_LIMIT")))),
 			NUM2INT(rb_hash_aref(r, ID2SYM(rb_intern("HEAP_USE_SLOTS")))),
 			rb_hash_aref(r, ID2SYM(rb_intern("HAVE_FINALIZE")))? "true" : "false",
 			NUM2DBL(rb_hash_aref(r, ID2SYM(rb_intern("GC_MARK_TIME"))))*100,
 			NUM2DBL(rb_hash_aref(r, ID2SYM(rb_intern("GC_SWEEP_TIME"))))*100);
-	    rb_str_cat2(result, buf);
 	}
 #endif
     }
+    else {
+	result = rb_str_new2("");
+    }
     return result;
 }
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]