Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 4 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,6 @@ project (Jerry CXX C ASM)
COMPACT_PROFILE
COMPACT_PROFILE_MINIMAL
FULL_PROFILE
MINIMAL_FOOTPRINT
MEMORY_STATISTICS)

# Profiles
Expand All @@ -152,22 +151,20 @@ project (Jerry CXX C ASM)
# Minimal compact profile
set(MODIFIER_SUFFIX_COMPACT_PROFILE_MINIMAL -cp_minimal)

# Minimal footprint
set(MODIFIER_SUFFIX_MINIMAL_FOOTPRINT -mfp)

# 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 MINIMAL_FOOTPRINT"
"FULL_PROFILE MINIMAL_FOOTPRINT MEMORY_STATISTICS"
"FULL_PROFILE MEMORY_STATISTICS"
"COMPACT_PROFILE_MINIMAL MINIMAL_FOOTPRINT"
"COMPACT_PROFILE_MINIMAL MEMORY_STATISTICS")

# MCU
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ export TARGET_RELEASE_MODES = release

export TARGET_PC_SYSTEMS = linux

export TARGET_PC_MODS = cp cp_minimal mem_stats mfp cp_minimal-mfp mfp-mem_stats
export TARGET_PC_MODS = cp cp_minimal mem_stats mem_stress_test

export TARGET_MCU_MODS = cp cp_minimal

Expand Down
7 changes: 3 additions & 4 deletions jerry-core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,9 @@ project (JerryCore CXX C ASM)
CONFIG_ECMA_COMPACT_PROFILE_DISABLE_MATH_BUILTIN
CONFIG_ECMA_COMPACT_PROFILE_DISABLE_JSON_BUILTIN)

# Minimal footprint
set(DEFINES_MINIMAL_FOOTPRINT
CONFIG_ECMA_LCACHE_DISABLE
CONFIG_VM_RUN_GC_AFTER_EACH_OPCODE)
# Memory management stress-test mode
set(DEFINES_MEM_STRESS_TEST
MEM_GC_BEFORE_EACH_ALLOC)

# Memory statistics
set(DEFINES_MEMORY_STATISTICS MEM_STATS)
Expand Down
4 changes: 4 additions & 0 deletions jerry-core/mem/mem-heap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down
9 changes: 7 additions & 2 deletions jerry-core/mem/mem-poolman.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
*/
Expand Down Expand Up @@ -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
Expand Down