[svn:parrot] r49172 - branches/gc_massacre/src/gc
bacek at svn.parrot.org
bacek at svn.parrot.org
Mon Sep 20 10:58:50 UTC 2010
Author: bacek
Date: Mon Sep 20 10:58:50 2010
New Revision: 49172
URL: https://trac.parrot.org/parrot/changeset/49172
Log:
GC_Subsystem has GC_Statistics now. Drop GC MS2 copy.
Modified:
branches/gc_massacre/src/gc/gc_ms2.c
Modified: branches/gc_massacre/src/gc/gc_ms2.c
==============================================================================
--- branches/gc_massacre/src/gc/gc_ms2.c Mon Sep 20 10:58:15 2010 (r49171)
+++ branches/gc_massacre/src/gc/gc_ms2.c Mon Sep 20 10:58:50 2010 (r49172)
@@ -39,9 +39,6 @@
/* Number of allocated objects before trigger gc */
size_t gc_threshold;
- /** statistics for GC **/
- GC_Statistics stats;
-
/* GC blocking */
UINTVAL gc_mark_block_level; /* How many outstanding GC block
requests are there? */
@@ -469,7 +466,7 @@
self->fixed_size_allocator, attr_size);
memset(PMC_data(pmc), 0, attr_size);
- self->stats.mem_used_last_collect += attr_size;
+ interp->gc_sys->stats.mem_used_last_collect += attr_size;
return PMC_data(pmc);
}
@@ -483,7 +480,7 @@
Parrot_gc_fixed_allocator_free(interp, self->fixed_size_allocator,
PMC_data(pmc), pmc->vtable->attr_size);
- self->stats.mem_used_last_collect -= pmc->vtable->attr_size;
+ interp->gc_sys->stats.mem_used_last_collect -= pmc->vtable->attr_size;
}
}
@@ -494,8 +491,8 @@
ASSERT_ARGS(gc_ms2_allocate_fixed_size_storage)
MarkSweep_GC *self = (MarkSweep_GC *)interp->gc_sys->gc_private;
- self->stats.memory_allocated += size;
- self->stats.mem_used_last_collect += size;
+ interp->gc_sys->stats.memory_allocated += size;
+ interp->gc_sys->stats.mem_used_last_collect += size;
return Parrot_gc_fixed_allocator_allocate(interp, self->fixed_size_allocator, size);
}
@@ -507,8 +504,8 @@
if (data) {
MarkSweep_GC *self = (MarkSweep_GC *)interp->gc_sys->gc_private;
- self->stats.memory_allocated -= size;
- self->stats.mem_used_last_collect -= size;
+ interp->gc_sys->stats.memory_allocated -= size;
+ interp->gc_sys->stats.mem_used_last_collect -= size;
Parrot_gc_fixed_allocator_free(interp, self->fixed_size_allocator, data, size);
}
@@ -533,7 +530,7 @@
if (which == IMPATIENT_PMCS)
return self->num_early_gc_PMCs;
- return Parrot_gc_get_info(interp, which, &self->stats);
+ return Parrot_gc_get_info(interp, which, &interp->gc_sys->stats);
}
@@ -656,7 +653,7 @@
#if 0
/* Invoke M&S early. Freshly allocated "header" isn't header yet */
- if ((++self->stats.header_allocs_since_last_collect > self->gc_threshold)
+ if ((++interp->gc_sys->stats.header_allocs_since_last_collect > self->gc_threshold)
&& self->pmc_allocator->num_free_objects <= 1) {
gc_ms2_mark_and_sweep(interp, 0);
}
@@ -665,9 +662,9 @@
gc_ms2_maybe_mark_and_sweep(interp);
/* Increase used memory. Not precisely accurate due Pool_Allocator paging */
- ++self->stats.header_allocs_since_last_collect;
- self->stats.memory_allocated += sizeof (PMC);
- self->stats.mem_used_last_collect += sizeof (PMC);
+ ++interp->gc_sys->stats.header_allocs_since_last_collect;
+ interp->gc_sys->stats.memory_allocated += sizeof (PMC);
+ interp->gc_sys->stats.mem_used_last_collect += sizeof (PMC);
ptr = (List_Item_Header *)Parrot_gc_pool_allocate(interp,
self->pmc_allocator);
@@ -693,9 +690,9 @@
Parrot_gc_pool_free(interp, self->pmc_allocator, Obj2LLH(pmc));
- --self->stats.header_allocs_since_last_collect;
- self->stats.memory_allocated -= sizeof (PMC);
- self->stats.mem_used_last_collect -= sizeof (PMC);
+ --interp->gc_sys->stats.header_allocs_since_last_collect;
+ interp->gc_sys->stats.memory_allocated -= sizeof (PMC);
+ interp->gc_sys->stats.mem_used_last_collect -= sizeof (PMC);
}
}
@@ -782,7 +779,7 @@
STRING *ret;
#if 0
- if ((++self->stats.header_allocs_since_last_collect > self->gc_threshold)
+ if ((++interp->gc_sys->stats.header_allocs_since_last_collect > self->gc_threshold)
&& self->string_allocator->num_free_objects <= 1) {
gc_ms2_mark_and_sweep(interp, 0);
}
@@ -791,9 +788,9 @@
gc_ms2_maybe_mark_and_sweep(interp);
/* Increase used memory. Not precisely accurate due Pool_Allocator paging */
- ++self->stats.header_allocs_since_last_collect;
- self->stats.memory_allocated += sizeof (STRING);
- self->stats.mem_used_last_collect += sizeof (STRING);
+ ++interp->gc_sys->stats.header_allocs_since_last_collect;
+ interp->gc_sys->stats.memory_allocated += sizeof (STRING);
+ interp->gc_sys->stats.mem_used_last_collect += sizeof (STRING);
ptr = (List_Item_Header *)Parrot_gc_pool_allocate(interp,
self->string_allocator);
@@ -820,9 +817,9 @@
Parrot_gc_pool_free(interp, self->string_allocator, Obj2LLH(s));
- --self->stats.header_allocs_since_last_collect;
- self->stats.memory_allocated -= sizeof (STRING);
- self->stats.mem_used_last_collect -= sizeof (STRING);
+ --interp->gc_sys->stats.header_allocs_since_last_collect;
+ interp->gc_sys->stats.memory_allocated -= sizeof (STRING);
+ interp->gc_sys->stats.mem_used_last_collect -= sizeof (STRING);
}
}
@@ -869,7 +866,7 @@
ASSERT_ARGS(gc_ms_allocate_string_storage)
MarkSweep_GC *self = (MarkSweep_GC *)interp->gc_sys->gc_private;
Parrot_gc_str_allocate_string_storage(interp, &self->string_gc, str, size);
- self->stats.mem_used_last_collect += size;
+ interp->gc_sys->stats.mem_used_last_collect += size;
}
static void
@@ -878,7 +875,7 @@
ASSERT_ARGS(gc_ms_reallocate_string_storage)
MarkSweep_GC *self = (MarkSweep_GC *)interp->gc_sys->gc_private;
Parrot_gc_str_reallocate_string_storage(interp, &self->string_gc, str, size);
- self->stats.mem_used_last_collect += size;
+ interp->gc_sys->stats.mem_used_last_collect += size;
}
static void
@@ -887,7 +884,7 @@
ASSERT_ARGS(gc_ms_allocate_buffer_storage)
MarkSweep_GC *self = (MarkSweep_GC *)interp->gc_sys->gc_private;
Parrot_gc_str_allocate_buffer_storage(interp, &self->string_gc, str, size);
- self->stats.mem_used_last_collect += size;
+ interp->gc_sys->stats.mem_used_last_collect += size;
}
static void
@@ -896,7 +893,7 @@
ASSERT_ARGS(gc_ms_reallocate_buffer_storage)
MarkSweep_GC *self = (MarkSweep_GC *)interp->gc_sys->gc_private;
Parrot_gc_str_reallocate_buffer_storage(interp, &self->string_gc, str, size);
- self->stats.mem_used_last_collect += size;
+ interp->gc_sys->stats.mem_used_last_collect += size;
}
/*
@@ -1011,9 +1008,9 @@
//if (self->gc_threshold < 1024 * 1024 * 10)
// self->gc_threshold *= 1.1;
- self->stats.header_allocs_since_last_collect = 0;
- self->stats.mem_used_last_collect = 0;
- self->stats.gc_mark_runs++;
+ interp->gc_sys->stats.header_allocs_since_last_collect = 0;
+ interp->gc_sys->stats.mem_used_last_collect = 0;
+ interp->gc_sys->stats.gc_mark_runs++;
self->gc_mark_block_level--;
/* We swept all dead objects */
self->num_early_gc_PMCs = 0;
@@ -1324,7 +1321,7 @@
MarkSweep_GC *self = (MarkSweep_GC *)interp->gc_sys->gc_private;
/* Collect every 256M. Hardcode for now. Will be configured via CLI */
- if (self->stats.mem_used_last_collect > 256 * 1024 * 1024) {
+ if (interp->gc_sys->stats.mem_used_last_collect > 256 * 1024 * 1024) {
gc_ms2_mark_and_sweep(interp, 0);
}
}
More information about the parrot-commits
mailing list