95 |
#define SCM_DEFAULT_INIT_MALLOC_LIMIT 200*1024 |
#define SCM_DEFAULT_INIT_MALLOC_LIMIT 200*1024 |
96 |
#define SCM_DEFAULT_MALLOC_MINYIELD 40 |
#define SCM_DEFAULT_MALLOC_MINYIELD 40 |
97 |
|
|
98 |
|
/* #define DEBUGINFO */ |
99 |
|
|
100 |
static int scm_i_minyield_malloc; |
static int scm_i_minyield_malloc; |
101 |
|
|
208 |
|
|
209 |
yield = (prev_alloced - scm_mallocated) / (float) prev_alloced; |
yield = (prev_alloced - scm_mallocated) / (float) prev_alloced; |
210 |
scm_gc_malloc_yield_percentage = (int) (100 * yield); |
scm_gc_malloc_yield_percentage = (int) (100 * yield); |
211 |
/* |
|
212 |
|
#ifdef DEBUGINFO |
213 |
fprintf (stderr, "prev %lud , now %lud, yield %4.2lf, want %d", |
fprintf (stderr, "prev %lud , now %lud, yield %4.2lf, want %d", |
214 |
prev_alloced, scm_mallocated, 100.0*yield, scm_i_minyield_malloc); |
prev_alloced, scm_mallocated, 100.0*yield, scm_i_minyield_malloc); |
215 |
*/ |
#endif |
216 |
|
|
217 |
if (yield < scm_i_minyield_malloc / 100.0) |
if (yield < scm_i_minyield_malloc / 100.0) |
218 |
{ |
{ |
219 |
/* |
/* |
226 |
*/ |
*/ |
227 |
scm_mtrigger = (scm_mallocated * 110) / (100 - scm_i_minyield_malloc); |
scm_mtrigger = (scm_mallocated * 110) / (100 - scm_i_minyield_malloc); |
228 |
|
|
229 |
/* |
#ifdef DEBUGINFO |
230 |
fprintf (stderr, "Mtrigger sweep: ineffective. New trigger %d\n", scm_mtrigger); |
fprintf (stderr, "Mtrigger sweep: ineffective. New trigger %d\n", scm_mtrigger); |
231 |
*/ |
#endif |
232 |
} |
} |
|
|
|
|
|
|
233 |
} |
} |
234 |
|
|
235 |
#ifdef GUILE_DEBUG_MALLOC |
#ifdef GUILE_DEBUG_MALLOC |