8.4. Compact Memory Pools

8.4.1. Overview

PikaScript has a built-in compact memory pool for small resource chips, which is not enabled by default.

Compact memory pooling can reduce memory fragmentation from the usual 20-30% to less than 5%.

Note] Compact memory pooling can slow down the operation speed.

8.4.2. Enabling method

Note that the kernel version must be at least v1.9.0.

8.4.2.1. Enable user configuration

Refer to the configuration document

8.4.2.2. Add configuration items

  1. /* pika_config.h */
  2. #define PIKA_POOL_ENABLE 1
  3. #define PIKA_POOL_SIZE 0x1900

Where PIKA_POOL_ENABLE means open compact memory pool, PIKA_POOL_SIZE means the size of the memory pool, the memory pool pre-apply memory from heap, please make sure the heap can apply to that size.

Refer to bsp/stm32g030c8/Booter/pika_config.h

8.4.2.3. Memory pool initialization

Initialize the memory pool before pikaScriptInit() or newRootObj().

  1. mem_pool_init();

Reference: bsp/stm32g030c8/Booter/main.c

8.4.3. Freeing the memory pool

If the memory pool needs to be freed, call

  1. mem_pool_deinit();