* gc.c: change terminology OLDSPACE -> OLDMALLOC.
(oldspace -> oldmalloc for variable names) OLDSPACE is confusing because it is not includes slots. To more clearly, rename such as (oldspace_limit -> oldmalloc_limit). It is clear that it measures (estimates) malloc()'ed size. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
9465475e21
commit
c1382f3ab5
@ -1,3 +1,12 @@
|
|||||||
|
Mon Nov 25 03:10:46 2013 Koichi Sasada <ko1@atdot.net>
|
||||||
|
|
||||||
|
* gc.c: change terminology OLDSPACE -> OLDMALLOC.
|
||||||
|
(oldspace -> oldmalloc for variable names)
|
||||||
|
|
||||||
|
OLDSPACE is confusing because it is not includes slots.
|
||||||
|
To more clearly, rename such as (oldspace_limit -> oldmalloc_limit).
|
||||||
|
It is clear that it measures (estimates) malloc()'ed size.
|
||||||
|
|
||||||
Mon Nov 25 00:50:03 2013 Masaki Matsushita <glass.saga@gmail.com>
|
Mon Nov 25 00:50:03 2013 Masaki Matsushita <glass.saga@gmail.com>
|
||||||
|
|
||||||
* internal.h: use __builtin_bswap16() if possible.
|
* internal.h: use __builtin_bswap16() if possible.
|
||||||
|
54
gc.c
54
gc.c
@ -112,14 +112,14 @@ rb_gc_guarded_ptr(volatile VALUE *ptr)
|
|||||||
#define GC_MALLOC_LIMIT_GROWTH_FACTOR 1.4
|
#define GC_MALLOC_LIMIT_GROWTH_FACTOR 1.4
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef GC_OLDSPACE_LIMIT_MIN
|
#ifndef GC_OLDMALLOC_LIMIT_MIN
|
||||||
#define GC_OLDSPACE_LIMIT_MIN (16 * 1024 * 1024 /* 16MB */)
|
#define GC_OLDMALLOC_LIMIT_MIN (16 * 1024 * 1024 /* 16MB */)
|
||||||
#endif
|
#endif
|
||||||
#ifndef GC_OLDSPACE_LIMIT_GROWTH_FACTOR
|
#ifndef GC_OLDMALLOC_LIMIT_GROWTH_FACTOR
|
||||||
#define GC_OLDSPACE_LIMIT_GROWTH_FACTOR 1.2
|
#define GC_OLDMALLOC_LIMIT_GROWTH_FACTOR 1.2
|
||||||
#endif
|
#endif
|
||||||
#ifndef GC_OLDSPACE_LIMIT_MAX
|
#ifndef GC_OLDMALLOC_LIMIT_MAX
|
||||||
#define GC_OLDSPACE_LIMIT_MAX (128 * 1024 * 1024 /* 128MB */)
|
#define GC_OLDMALLOC_LIMIT_MAX (128 * 1024 * 1024 /* 128MB */)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -130,9 +130,9 @@ typedef struct {
|
|||||||
unsigned int malloc_limit_min;
|
unsigned int malloc_limit_min;
|
||||||
unsigned int malloc_limit_max;
|
unsigned int malloc_limit_max;
|
||||||
double malloc_limit_growth_factor;
|
double malloc_limit_growth_factor;
|
||||||
unsigned int oldspace_limit_min;
|
unsigned int oldmalloc_limit_min;
|
||||||
unsigned int oldspace_limit_max;
|
unsigned int oldmalloc_limit_max;
|
||||||
double oldspace_limit_growth_factor;
|
double oldmalloc_limit_growth_factor;
|
||||||
#if defined(ENABLE_VM_OBJSPACE) && ENABLE_VM_OBJSPACE
|
#if defined(ENABLE_VM_OBJSPACE) && ENABLE_VM_OBJSPACE
|
||||||
VALUE gc_stress;
|
VALUE gc_stress;
|
||||||
#endif
|
#endif
|
||||||
@ -146,9 +146,9 @@ static ruby_gc_params_t gc_params = {
|
|||||||
GC_MALLOC_LIMIT_MIN,
|
GC_MALLOC_LIMIT_MIN,
|
||||||
GC_MALLOC_LIMIT_MAX,
|
GC_MALLOC_LIMIT_MAX,
|
||||||
GC_MALLOC_LIMIT_GROWTH_FACTOR,
|
GC_MALLOC_LIMIT_GROWTH_FACTOR,
|
||||||
GC_OLDSPACE_LIMIT_MIN,
|
GC_OLDMALLOC_LIMIT_MIN,
|
||||||
GC_OLDSPACE_LIMIT_MAX,
|
GC_OLDMALLOC_LIMIT_MAX,
|
||||||
GC_OLDSPACE_LIMIT_GROWTH_FACTOR,
|
GC_OLDMALLOC_LIMIT_GROWTH_FACTOR,
|
||||||
#if defined(ENABLE_VM_OBJSPACE) && ENABLE_VM_OBJSPACE
|
#if defined(ENABLE_VM_OBJSPACE) && ENABLE_VM_OBJSPACE
|
||||||
FALSE,
|
FALSE,
|
||||||
#endif
|
#endif
|
||||||
@ -851,7 +851,7 @@ rb_objspace_alloc(void)
|
|||||||
|
|
||||||
malloc_limit = gc_params.malloc_limit_min;
|
malloc_limit = gc_params.malloc_limit_min;
|
||||||
#if RGENGC_ESTIMATE_OLDSPACE
|
#if RGENGC_ESTIMATE_OLDSPACE
|
||||||
objspace->rgengc.oldspace_increase_limit = gc_params.oldspace_limit_min;
|
objspace->rgengc.oldspace_increase_limit = gc_params.oldmalloc_limit_min;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return objspace;
|
return objspace;
|
||||||
@ -2854,23 +2854,23 @@ gc_before_sweep(rb_objspace_t *objspace)
|
|||||||
if (objspace->rgengc.oldspace_increase > objspace->rgengc.oldspace_increase_limit) {
|
if (objspace->rgengc.oldspace_increase > objspace->rgengc.oldspace_increase_limit) {
|
||||||
objspace->rgengc.need_major_gc = TRUE;
|
objspace->rgengc.need_major_gc = TRUE;
|
||||||
objspace->rgengc.oldspace_increase_limit =
|
objspace->rgengc.oldspace_increase_limit =
|
||||||
(size_t)(objspace->rgengc.oldspace_increase_limit * gc_params.oldspace_limit_growth_factor);
|
(size_t)(objspace->rgengc.oldspace_increase_limit * gc_params.oldmalloc_limit_growth_factor);
|
||||||
if (objspace->rgengc.oldspace_increase_limit > gc_params.oldspace_limit_max) {
|
if (objspace->rgengc.oldspace_increase_limit > gc_params.oldmalloc_limit_max) {
|
||||||
objspace->rgengc.oldspace_increase_limit = gc_params.oldspace_limit_max;
|
objspace->rgengc.oldspace_increase_limit = gc_params.oldmalloc_limit_max;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
objspace->rgengc.oldspace_increase_limit =
|
objspace->rgengc.oldspace_increase_limit =
|
||||||
(size_t)(objspace->rgengc.oldspace_increase_limit / ((gc_params.oldspace_limit_growth_factor - 1)/10 + 1));
|
(size_t)(objspace->rgengc.oldspace_increase_limit / ((gc_params.oldmalloc_limit_growth_factor - 1)/10 + 1));
|
||||||
if (objspace->rgengc.oldspace_increase_limit < gc_params.oldspace_limit_min) {
|
if (objspace->rgengc.oldspace_increase_limit < gc_params.oldmalloc_limit_min) {
|
||||||
objspace->rgengc.oldspace_increase_limit = gc_params.oldspace_limit_min;
|
objspace->rgengc.oldspace_increase_limit = gc_params.oldmalloc_limit_min;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0) fprintf(stderr, "%d\t%d\t%u\t%u\t%d\n", (int)rb_gc_count(), objspace->rgengc.need_major_gc,
|
if (0) fprintf(stderr, "%d\t%d\t%u\t%u\t%d\n", (int)rb_gc_count(), objspace->rgengc.need_major_gc,
|
||||||
(unsigned int)objspace->rgengc.oldspace_increase,
|
(unsigned int)objspace->rgengc.oldspace_increase,
|
||||||
(unsigned int)objspace->rgengc.oldspace_increase_limit,
|
(unsigned int)objspace->rgengc.oldspace_increase_limit,
|
||||||
(unsigned int)gc_params.oldspace_limit_max);
|
(unsigned int)gc_params.oldmalloc_limit_max);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/* major GC */
|
/* major GC */
|
||||||
@ -5298,9 +5298,9 @@ gc_set_initial_pages(void)
|
|||||||
* * RUBY_GC_MALLOC_LIMIT_MAX (new from 2.1)
|
* * RUBY_GC_MALLOC_LIMIT_MAX (new from 2.1)
|
||||||
* * RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR (new from 2.1)
|
* * RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR (new from 2.1)
|
||||||
*
|
*
|
||||||
* * RUBY_GC_OLDSPACE_LIMIT (new from 2.1)
|
* * RUBY_GC_OLDMALLOC_LIMIT (new from 2.1)
|
||||||
* * RUBY_GC_OLDSPACE_LIMIT_MAX (new from 2.1)
|
* * RUBY_GC_OLDMALLOC_LIMIT_MAX (new from 2.1)
|
||||||
* * RUBY_GC_OLDSPACE_LIMIT_GROWTH_FACTOR (new from 2.1)
|
* * RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR (new from 2.1)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -5330,9 +5330,11 @@ ruby_gc_set_params(void)
|
|||||||
get_envparam_int("RUBY_GC_MALLOC_LIMIT_MAX", &gc_params.malloc_limit_max, 0);
|
get_envparam_int("RUBY_GC_MALLOC_LIMIT_MAX", &gc_params.malloc_limit_max, 0);
|
||||||
get_envparam_double("RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR", &gc_params.malloc_limit_growth_factor, 1.0);
|
get_envparam_double("RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR", &gc_params.malloc_limit_growth_factor, 1.0);
|
||||||
|
|
||||||
get_envparam_int("RUBY_GC_OLDSPACE_LIMIT", &gc_params.oldspace_limit_min, 0);
|
#ifdef RGENGC_ESTIMATE_OLDSPACE
|
||||||
get_envparam_int("RUBY_GC_OLDSPACE_LIMIT_MAX", &gc_params.oldspace_limit_max, 0);
|
get_envparam_int("RUBY_GC_OLDMALLOC_LIMIT", &gc_params.oldmalloc_limit_min, 0);
|
||||||
get_envparam_double("RUBY_GC_OLDSPACE_LIMIT_GROWTH_FACTOR", &gc_params.oldspace_limit_growth_factor, 1.0);
|
get_envparam_int("RUBY_GC_OLDMALLOC_LIMIT_MAX", &gc_params.oldmalloc_limit_max, 0);
|
||||||
|
get_envparam_double("RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR", &gc_params.oldmalloc_limit_growth_factor, 1.0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
RUBY_ALIAS_FUNCTION_VOID(rb_gc_set_params(void), ruby_gc_set_params, ())
|
RUBY_ALIAS_FUNCTION_VOID(rb_gc_set_params(void), ruby_gc_set_params, ())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user