mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2025-12-15 16:29:21 +00:00
Introduce GC stress testing mode (-mem_stress_test prefix; for example: debug.linux-mem_stress_test).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
This commit is contained in:
parent
b318de46a6
commit
fdf38ab2eb
@ -154,10 +154,14 @@ project (Jerry CXX C ASM)
|
||||
# Memory statistics
|
||||
set(MODIFIER_SUFFIX_MEMORY_STATISTICS -mem_stats)
|
||||
|
||||
# Memory management stress-test mode
|
||||
set(MODIFIER_SUFFIX_MEM_STRESS_TEST -mem_stress_test)
|
||||
|
||||
# Modifier lists
|
||||
# Linux
|
||||
set(MODIFIERS_LISTS_LINUX
|
||||
"FULL_PROFILE"
|
||||
"FULL_PROFILE MEM_STRESS_TEST"
|
||||
"COMPACT_PROFILE"
|
||||
"COMPACT_PROFILE_MINIMAL"
|
||||
"FULL_PROFILE MEMORY_STATISTICS"
|
||||
|
||||
2
Makefile
2
Makefile
@ -97,7 +97,7 @@ export TARGET_RELEASE_MODES = release
|
||||
|
||||
export TARGET_PC_SYSTEMS = linux
|
||||
|
||||
export TARGET_PC_MODS = cp cp_minimal mem_stats
|
||||
export TARGET_PC_MODS = cp cp_minimal mem_stats mem_stress_test
|
||||
|
||||
export TARGET_MCU_MODS = cp cp_minimal
|
||||
|
||||
|
||||
@ -70,6 +70,10 @@ project (JerryCore CXX C ASM)
|
||||
CONFIG_ECMA_COMPACT_PROFILE_DISABLE_MATH_BUILTIN
|
||||
CONFIG_ECMA_COMPACT_PROFILE_DISABLE_JSON_BUILTIN)
|
||||
|
||||
# Memory management stress-test mode
|
||||
set(DEFINES_MEM_STRESS_TEST
|
||||
MEM_GC_BEFORE_EACH_ALLOC)
|
||||
|
||||
# Memory statistics
|
||||
set(DEFINES_MEMORY_STATISTICS MEM_STATS)
|
||||
|
||||
|
||||
@ -489,6 +489,10 @@ mem_heap_alloc_block_try_give_memory_back (size_t size_in_bytes, /**< size of re
|
||||
* (one-chunked or general) */
|
||||
mem_heap_alloc_term_t alloc_term) /**< expected allocation term */
|
||||
{
|
||||
#ifdef MEM_GC_BEFORE_EACH_ALLOC
|
||||
mem_run_try_to_give_memory_back_callbacks (MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_CRITICAL);
|
||||
#endif /* MEM_GC_BEFORE_EACH_ALLOC */
|
||||
|
||||
size_t chunks = mem_get_block_chunks_count_from_data_size (size_in_bytes);
|
||||
if ((mem_heap_allocated_chunks + chunks) * MEM_HEAP_CHUNK_SIZE >= mem_heap_limit)
|
||||
{
|
||||
|
||||
@ -24,14 +24,15 @@
|
||||
* Memory pool manager implementation
|
||||
*/
|
||||
|
||||
#define JERRY_MEM_POOL_INTERNAL
|
||||
|
||||
#include "jrt.h"
|
||||
#include "jrt-libc-includes.h"
|
||||
#include "mem-allocator.h"
|
||||
#include "mem-heap.h"
|
||||
#include "mem-poolman.h"
|
||||
|
||||
#define MEM_ALLOCATOR_INTERNAL
|
||||
#include "mem-allocator-internal.h"
|
||||
|
||||
/**
|
||||
* Size of a pool
|
||||
*/
|
||||
@ -521,6 +522,10 @@ mem_pools_alloc_longpath (void)
|
||||
uint8_t* __attr_always_inline___
|
||||
mem_pools_alloc (void)
|
||||
{
|
||||
#ifdef MEM_GC_BEFORE_EACH_ALLOC
|
||||
mem_run_try_to_give_memory_back_callbacks (MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_CRITICAL);
|
||||
#endif /* MEM_GC_BEFORE_EACH_ALLOC */
|
||||
|
||||
mem_check_pools ();
|
||||
|
||||
do
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user