Rename try_give_memory_back to a better free_unused_memory.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
@@ -564,10 +564,9 @@ ecma_gc_run (void)
|
|||||||
* Try to free some memory (depending on severity).
|
* Try to free some memory (depending on severity).
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
ecma_try_to_give_back_some_memory (jmem_try_give_memory_back_severity_t severity) /**< severity of
|
ecma_free_unused_memory (jmem_free_unused_memory_severity_t severity) /**< severity of the request */
|
||||||
* the request */
|
|
||||||
{
|
{
|
||||||
if (severity == JMEM_TRY_GIVE_MEMORY_BACK_SEVERITY_LOW)
|
if (severity == JMEM_FREE_UNUSED_MEMORY_SEVERITY_LOW)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* If there is enough newly allocated objects since last GC, probably it is worthwhile to start GC now.
|
* If there is enough newly allocated objects since last GC, probably it is worthwhile to start GC now.
|
||||||
@@ -580,12 +579,12 @@ ecma_try_to_give_back_some_memory (jmem_try_give_memory_back_severity_t severity
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
JERRY_ASSERT (severity == JMEM_TRY_GIVE_MEMORY_BACK_SEVERITY_HIGH);
|
JERRY_ASSERT (severity == JMEM_FREE_UNUSED_MEMORY_SEVERITY_HIGH);
|
||||||
|
|
||||||
/* Freeing as much memory as we currently can */
|
/* Freeing as much memory as we currently can */
|
||||||
ecma_gc_run ();
|
ecma_gc_run ();
|
||||||
}
|
}
|
||||||
} /* ecma_try_to_give_back_some_memory */
|
} /* ecma_free_unused_memory */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ extern void ecma_init_gc_info (ecma_object_t *);
|
|||||||
extern void ecma_ref_object (ecma_object_t *);
|
extern void ecma_ref_object (ecma_object_t *);
|
||||||
extern void ecma_deref_object (ecma_object_t *);
|
extern void ecma_deref_object (ecma_object_t *);
|
||||||
extern void ecma_gc_run (void);
|
extern void ecma_gc_run (void);
|
||||||
extern void ecma_try_to_give_back_some_memory (jmem_try_give_memory_back_severity_t);
|
extern void ecma_free_unused_memory (jmem_free_unused_memory_severity_t);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ ecma_init (void)
|
|||||||
ecma_lcache_init ();
|
ecma_lcache_init ();
|
||||||
ecma_init_environment ();
|
ecma_init_environment ();
|
||||||
|
|
||||||
jmem_register_a_try_give_memory_back_callback (ecma_try_to_give_back_some_memory);
|
jmem_register_free_unused_memory_callback (ecma_free_unused_memory);
|
||||||
} /* ecma_init */
|
} /* ecma_init */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -48,7 +48,7 @@ ecma_init (void)
|
|||||||
void
|
void
|
||||||
ecma_finalize (void)
|
ecma_finalize (void)
|
||||||
{
|
{
|
||||||
jmem_unregister_a_try_give_memory_back_callback (ecma_try_to_give_back_some_memory);
|
jmem_unregister_free_unused_memory_callback (ecma_free_unused_memory);
|
||||||
|
|
||||||
ecma_finalize_environment ();
|
ecma_finalize_environment ();
|
||||||
ecma_finalize_builtins ();
|
ecma_finalize_builtins ();
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern void jmem_run_try_to_give_memory_back_callbacks (jmem_try_give_memory_back_severity_t);
|
extern void jmem_run_free_unused_memory_callbacks (jmem_free_unused_memory_severity_t);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
/**
|
/**
|
||||||
* The 'try to give memory back' callback
|
* The 'try to give memory back' callback
|
||||||
*/
|
*/
|
||||||
static jmem_try_give_memory_back_callback_t jmem_try_give_memory_back_callback = NULL;
|
static jmem_free_unused_memory_callback_t jmem_free_unused_memory_callback = NULL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize memory allocators.
|
* Initialize memory allocators.
|
||||||
@@ -91,40 +91,39 @@ jmem_decompress_pointer (uintptr_t compressed_pointer) /**< pointer to decompres
|
|||||||
* Register specified 'try to give memory back' callback routine
|
* Register specified 'try to give memory back' callback routine
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
jmem_register_a_try_give_memory_back_callback (jmem_try_give_memory_back_callback_t callback) /**< callback routine */
|
jmem_register_free_unused_memory_callback (jmem_free_unused_memory_callback_t callback) /**< callback routine */
|
||||||
{
|
{
|
||||||
/* Currently only one callback is supported */
|
/* Currently only one callback is supported */
|
||||||
JERRY_ASSERT (jmem_try_give_memory_back_callback == NULL);
|
JERRY_ASSERT (jmem_free_unused_memory_callback == NULL);
|
||||||
|
|
||||||
jmem_try_give_memory_back_callback = callback;
|
jmem_free_unused_memory_callback = callback;
|
||||||
} /* jmem_register_a_try_give_memory_back_callback */
|
} /* jmem_register_free_unused_memory_callback */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unregister specified 'try to give memory back' callback routine
|
* Unregister specified 'try to give memory back' callback routine
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
jmem_unregister_a_try_give_memory_back_callback (jmem_try_give_memory_back_callback_t callback) /**< callback routine */
|
jmem_unregister_free_unused_memory_callback (jmem_free_unused_memory_callback_t callback) /**< callback routine */
|
||||||
{
|
{
|
||||||
/* Currently only one callback is supported */
|
/* Currently only one callback is supported */
|
||||||
JERRY_ASSERT (jmem_try_give_memory_back_callback == callback);
|
JERRY_ASSERT (jmem_free_unused_memory_callback == callback);
|
||||||
|
|
||||||
jmem_try_give_memory_back_callback = NULL;
|
jmem_free_unused_memory_callback = NULL;
|
||||||
} /* jmem_unregister_a_try_give_memory_back_callback */
|
} /* jmem_unregister_free_unused_memory_callback */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Run 'try to give memory back' callbacks with specified severity
|
* Run 'try to give memory back' callbacks with specified severity
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
jmem_run_try_to_give_memory_back_callbacks (jmem_try_give_memory_back_severity_t severity) /**< severity of
|
jmem_run_free_unused_memory_callbacks (jmem_free_unused_memory_severity_t severity) /**< severity of the request */
|
||||||
the request */
|
|
||||||
{
|
{
|
||||||
if (jmem_try_give_memory_back_callback != NULL)
|
if (jmem_free_unused_memory_callback != NULL)
|
||||||
{
|
{
|
||||||
jmem_try_give_memory_back_callback (severity);
|
jmem_free_unused_memory_callback (severity);
|
||||||
}
|
}
|
||||||
|
|
||||||
jmem_pools_collect_empty ();
|
jmem_pools_collect_empty ();
|
||||||
} /* jmem_run_try_to_give_memory_back_callbacks */
|
} /* jmem_run_free_unused_memory_callbacks */
|
||||||
|
|
||||||
#ifdef JMEM_STATS
|
#ifdef JMEM_STATS
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -64,14 +64,14 @@ typedef uint16_t jmem_cpointer_t;
|
|||||||
*/
|
*/
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
JMEM_TRY_GIVE_MEMORY_BACK_SEVERITY_LOW, /* 'low' severity */
|
JMEM_FREE_UNUSED_MEMORY_SEVERITY_LOW, /* 'low' severity */
|
||||||
JMEM_TRY_GIVE_MEMORY_BACK_SEVERITY_HIGH, /* 'high' severity */
|
JMEM_FREE_UNUSED_MEMORY_SEVERITY_HIGH, /* 'high' severity */
|
||||||
} jmem_try_give_memory_back_severity_t;
|
} jmem_free_unused_memory_severity_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A 'try give memory back' callback routine type.
|
* A 'try give memory back' callback routine type.
|
||||||
*/
|
*/
|
||||||
typedef void (*jmem_try_give_memory_back_callback_t) (jmem_try_give_memory_back_severity_t);
|
typedef void (*jmem_free_unused_memory_callback_t) (jmem_free_unused_memory_severity_t);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get value of pointer from specified non-null compressed pointer value
|
* Get value of pointer from specified non-null compressed pointer value
|
||||||
@@ -117,8 +117,8 @@ extern void jmem_finalize (bool);
|
|||||||
extern uintptr_t jmem_compress_pointer (const void *);
|
extern uintptr_t jmem_compress_pointer (const void *);
|
||||||
extern void *jmem_decompress_pointer (uintptr_t);
|
extern void *jmem_decompress_pointer (uintptr_t);
|
||||||
|
|
||||||
extern void jmem_register_a_try_give_memory_back_callback (jmem_try_give_memory_back_callback_t);
|
extern void jmem_register_free_unused_memory_callback (jmem_free_unused_memory_callback_t);
|
||||||
extern void jmem_unregister_a_try_give_memory_back_callback (jmem_try_give_memory_back_callback_t);
|
extern void jmem_unregister_free_unused_memory_callback (jmem_free_unused_memory_callback_t);
|
||||||
|
|
||||||
#ifdef JMEM_STATS
|
#ifdef JMEM_STATS
|
||||||
extern void jmem_stats_reset_peak (void);
|
extern void jmem_stats_reset_peak (void);
|
||||||
|
|||||||
@@ -380,12 +380,12 @@ jmem_heap_alloc_block (const size_t size)
|
|||||||
VALGRIND_FREYA_CHECK_MEMPOOL_REQUEST;
|
VALGRIND_FREYA_CHECK_MEMPOOL_REQUEST;
|
||||||
|
|
||||||
#ifdef JMEM_GC_BEFORE_EACH_ALLOC
|
#ifdef JMEM_GC_BEFORE_EACH_ALLOC
|
||||||
jmem_run_try_to_give_memory_back_callbacks (JMEM_TRY_GIVE_MEMORY_BACK_SEVERITY_HIGH);
|
jmem_run_free_unused_memory_callbacks (JMEM_FREE_UNUSED_MEMORY_SEVERITY_HIGH);
|
||||||
#endif /* JMEM_GC_BEFORE_EACH_ALLOC */
|
#endif /* JMEM_GC_BEFORE_EACH_ALLOC */
|
||||||
|
|
||||||
if (jmem_heap_allocated_size + size >= jmem_heap_limit)
|
if (jmem_heap_allocated_size + size >= jmem_heap_limit)
|
||||||
{
|
{
|
||||||
jmem_run_try_to_give_memory_back_callbacks (JMEM_TRY_GIVE_MEMORY_BACK_SEVERITY_LOW);
|
jmem_run_free_unused_memory_callbacks (JMEM_FREE_UNUSED_MEMORY_SEVERITY_LOW);
|
||||||
}
|
}
|
||||||
|
|
||||||
void *data_space_p = jmem_heap_alloc_block_internal (size);
|
void *data_space_p = jmem_heap_alloc_block_internal (size);
|
||||||
@@ -396,11 +396,11 @@ jmem_heap_alloc_block (const size_t size)
|
|||||||
return data_space_p;
|
return data_space_p;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (jmem_try_give_memory_back_severity_t severity = JMEM_TRY_GIVE_MEMORY_BACK_SEVERITY_LOW;
|
for (jmem_free_unused_memory_severity_t severity = JMEM_FREE_UNUSED_MEMORY_SEVERITY_LOW;
|
||||||
severity <= JMEM_TRY_GIVE_MEMORY_BACK_SEVERITY_HIGH;
|
severity <= JMEM_FREE_UNUSED_MEMORY_SEVERITY_HIGH;
|
||||||
severity = (jmem_try_give_memory_back_severity_t) (severity + 1))
|
severity = (jmem_free_unused_memory_severity_t) (severity + 1))
|
||||||
{
|
{
|
||||||
jmem_run_try_to_give_memory_back_callbacks (severity);
|
jmem_run_free_unused_memory_callbacks (severity);
|
||||||
|
|
||||||
data_space_p = jmem_heap_alloc_block_internal (size);
|
data_space_p = jmem_heap_alloc_block_internal (size);
|
||||||
|
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ inline void * __attribute__((hot)) __attr_always_inline___
|
|||||||
jmem_pools_alloc (void)
|
jmem_pools_alloc (void)
|
||||||
{
|
{
|
||||||
#ifdef JMEM_GC_BEFORE_EACH_ALLOC
|
#ifdef JMEM_GC_BEFORE_EACH_ALLOC
|
||||||
jmem_run_try_to_give_memory_back_callbacks (JMEM_TRY_GIVE_MEMORY_BACK_SEVERITY_HIGH);
|
jmem_run_free_unused_memory_callbacks (JMEM_FREE_UNUSED_MEMORY_SEVERITY_HIGH);
|
||||||
#endif /* JMEM_GC_BEFORE_EACH_ALLOC */
|
#endif /* JMEM_GC_BEFORE_EACH_ALLOC */
|
||||||
|
|
||||||
if (jmem_free_chunk_p != NULL)
|
if (jmem_free_chunk_p != NULL)
|
||||||
|
|||||||
@@ -35,17 +35,17 @@ size_t sizes[test_sub_iters];
|
|||||||
bool is_one_chunked[test_sub_iters];
|
bool is_one_chunked[test_sub_iters];
|
||||||
|
|
||||||
static void
|
static void
|
||||||
test_heap_give_some_memory_back (jmem_try_give_memory_back_severity_t severity)
|
test_heap_give_some_memory_back (jmem_free_unused_memory_severity_t severity)
|
||||||
{
|
{
|
||||||
int p;
|
int p;
|
||||||
|
|
||||||
if (severity == JMEM_TRY_GIVE_MEMORY_BACK_SEVERITY_LOW)
|
if (severity == JMEM_FREE_UNUSED_MEMORY_SEVERITY_LOW)
|
||||||
{
|
{
|
||||||
p = 8;
|
p = 8;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
JERRY_ASSERT (severity == JMEM_TRY_GIVE_MEMORY_BACK_SEVERITY_HIGH);
|
JERRY_ASSERT (severity == JMEM_FREE_UNUSED_MEMORY_SEVERITY_HIGH);
|
||||||
|
|
||||||
p = 1;
|
p = 1;
|
||||||
}
|
}
|
||||||
@@ -76,7 +76,7 @@ main (int __attr_unused___ argc,
|
|||||||
|
|
||||||
jmem_heap_init ();
|
jmem_heap_init ();
|
||||||
|
|
||||||
jmem_register_a_try_give_memory_back_callback (test_heap_give_some_memory_back);
|
jmem_register_free_unused_memory_callback (test_heap_give_some_memory_back);
|
||||||
|
|
||||||
#ifdef JMEM_STATS
|
#ifdef JMEM_STATS
|
||||||
jmem_heap_stats_print ();
|
jmem_heap_stats_print ();
|
||||||
|
|||||||
Reference in New Issue
Block a user