From 0f080e5fdf469bdf8699f6967bb1a9b8096246c9 Mon Sep 17 00:00:00 2001
From: Sami Vaarala Duktape allocates memory on demand and doesn't require a pre-allocated heap.
-When you create a heap on a 32-bit system, Duktape needs about 46kB for the
-built-in Ecmascript objects (about 22kB with
-low memory options). Additional
-memory is then allocated as needed for executing application scripts.
-Reference counting ensures there is very little unused allocated memory, the
-only exception being objects which participate in reference loops; these are
-collected eventually by mark-and-sweep.Memory usage
After heap creation additional memory is then allocated as needed for +executing application scripts. Reference counting ensures there is very +little unused allocated memory, the only exception being objects which +participate in reference loops; these are collected eventually by mark-and-sweep.
The memory allocations needed by Duktape fall into two basic categories. First, there are a lot of small allocations between roughly 16 to 128 bytes @@ -21,7 +25,9 @@ issue. On low memory environments, e.g. less than 1MB of system RAM, you may want to use a custom allocator to optimize memory usage. A pool-based allocator deals well with the small allocation churn without fragmentation issues. The downside is that you need to tune the memory pool sizes to match -the concrete allocation patterns.
+the concrete allocation patterns. You may want to use a pool allocator or a +hybrid allocated if the platform allocation primitives perform poorly with +a lot of small allocations.See low memory options and low-memory.rst diff --git a/website/index/index.html b/website/index/index.html index 77bed227..28397bd3 100644 --- a/website/index/index.html +++ b/website/index/index.html @@ -59,12 +59,13 @@ Duktape API to call Ecmascript functions from C code and vice versa.
x86 default | x86 lowmem | x86 full lowmem | |
Code | 224kB | 198kB | 234kB |
Startup RAM | 70kB | 43kB | 28kB |
Code | 224kB | 198kB | 234kB |
Startup RAM | 70kB | 43kB | 3kB |
Full lowmem -uses "pointer compression", Node.js Buffer and typed array support enabled.
+uses "pointer compression" and ROM-based strings/objects. ROM-based strings/objects can +also be used without other low memory options.