Add stats for cardtable processing time
authorRodrigo Kumpera <kumpera@gmail.com>
Thu, 2 Sep 2010 21:59:11 +0000 (18:59 -0300)
committerRodrigo Kumpera <kumpera@gmail.com>
Sat, 4 Sep 2010 20:30:43 +0000 (17:30 -0300)
mono/metadata/sgen-gc.c

index c35a882d4a0d31c3c0dd293c31c070af40fa4440..8ee40e110c91d8ab69eb72bc14d19b129d9866f0 100644 (file)
@@ -299,6 +299,7 @@ static int stat_wbarrier_object_copy = 0;
 static long long time_minor_pre_collection_fragment_clear = 0;
 static long long time_minor_pinning = 0;
 static long long time_minor_scan_remsets = 0;
+static long long time_minor_scan_card_table = 0;
 static long long time_minor_scan_pinned = 0;
 static long long time_minor_scan_registered_roots = 0;
 static long long time_minor_scan_thread_data = 0;
@@ -2486,6 +2487,7 @@ init_stats (void)
        mono_counters_register ("Minor fragment clear", MONO_COUNTER_GC | MONO_COUNTER_LONG, &time_minor_pre_collection_fragment_clear);
        mono_counters_register ("Minor pinning", MONO_COUNTER_GC | MONO_COUNTER_LONG, &time_minor_pinning);
        mono_counters_register ("Minor scan remsets", MONO_COUNTER_GC | MONO_COUNTER_LONG, &time_minor_scan_remsets);
+       mono_counters_register ("Minor scan cardtables", MONO_COUNTER_GC | MONO_COUNTER_LONG, &time_minor_scan_card_table);
        mono_counters_register ("Minor scan pinned", MONO_COUNTER_GC | MONO_COUNTER_LONG, &time_minor_scan_pinned);
        mono_counters_register ("Minor scan registered roots", MONO_COUNTER_GC | MONO_COUNTER_LONG, &time_minor_scan_registered_roots);
        mono_counters_register ("Minor scan thread data", MONO_COUNTER_GC | MONO_COUNTER_LONG, &time_minor_scan_thread_data);
@@ -2640,7 +2642,10 @@ collect_nursery (size_t requested_size)
        DEBUG (2, fprintf (gc_debug_file, "Old generation scan: %d usecs\n", TV_ELAPSED (atv, btv)));
 
        if (use_cardtable) {
+               TV_GETTIME (atv);
                scan_from_card_tables (nursery_start, nursery_next, &gray_queue);
+               TV_GETTIME (btv);
+               time_minor_scan_card_table += TV_ELAPSED_MS (atv, btv);
                //collect_faulted_cards ();
        }