Prop hashmap allocation strategy based on gc pattern is implemented. (#1429)
The algorithm is the following: * introduced a counter variable, which value can be [0-4] * if its value is 0, property hashmap allocation is enabled * JMEM_FREE_UNUSED_MEMORY_SEVERITY_LOW -> decrease the counter * JMEM_FREE_UNUSED_MEMORY_SEVERITY_HIGH -> increase the number * if JMEM_FREE_UNUSED_MEMORY_SEVERITY_HIGH happens twice in a row increase the counter to 4 According to the measurements this algorithm provides better runtime results in low memory conditions. JerryScript-DCO-1.0-Signed-off-by: István Kádár ikadar@inf.u-szeged.hu
This commit is contained in:
committed by
Zoltan Herczeg
parent
e443d95566
commit
405092e700
@@ -72,6 +72,13 @@ typedef struct
|
||||
uint8_t ecma_gc_visited_flip_flag; /**< current state of an object's visited flag */
|
||||
uint8_t is_direct_eval_form_call; /**< direct call from eval */
|
||||
uint8_t jerry_api_available; /**< API availability flag */
|
||||
|
||||
#ifndef CONFIG_ECMA_PROPERTY_HASHMAP_DISABLE
|
||||
uint8_t ecma_prop_hashmap_alloc_state; /**< property hashmap allocation state: 0-4,
|
||||
* if !0 property hashmap allocation is disabled */
|
||||
bool ecma_prop_hashmap_alloc_last_is_hs_gc; /**< true, if and only if the last gc action was a high severity gc */
|
||||
#endif /* !CONFIG_ECMA_PROPERTY_HASHMAP_DISABLE */
|
||||
|
||||
#ifndef CONFIG_DISABLE_REGEXP_BUILTIN
|
||||
uint8_t re_cache_idx; /**< evicted item index when regex cache is full (round-robin) */
|
||||
#endif /* !CONFIG_DISABLE_REGEXP_BUILTIN */
|
||||
|
||||
Reference in New Issue
Block a user