You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

63 lines
1.8 KiB

=======================
Low memory environments
=======================
One important portability target are low memory environments. The default
Duktape options are quite memory conservative, and significant Ecmascript
programs can be executed with, say, 1 megabyte of memory. Currently realistic
memory targets are roughly:
* 256kB flash memory (code) and 256kB system RAM
- Duktape compiled with default options is feasible
* 256kB flash memory (code) and 128kB system RAM
- Duktape feature options are needed to reduce memory usage
- A custom memory allocation with manually tuned pools may be required
- Only very small programs can currently be executed
This document describes suggested feature options for reducing Duktape
memory usage for memory-constrained environments.
Suggested feature options
=========================
* Use the default memory management settings: although reference counting
increases heap header size, it also reduces memory usage fluctuation
which is often more important than absolute footprint.
* Reduce error handling footprint with one or more of:
- ``DUK_OPT_NO_AUGMENT_ERRORS``
- ``DUK_OPT_NO_TRACEBACKS``
- ``DUK_OPT_NO_VERBOSE_ERRORS``
- ``DUK_OPT_NO_PC2LINE``
* If you don't need the Duktape-specific additional JX/JC formats, use:
- ``DUK_OPT_NO_JX``
- ``DUK_OPT_NO_JC``
* Features borrowed from Ecmascript E6 can usually be disabled:
- ``DUK_OPT_NO_ES6_OBJECT_SETPROTOTYPEOF``
- ``DUK_OPT_NO_ES6_OBJECT_PROTO_PROPERTY``
- ``DUK_OPT_NO_ES6_PROXY``
* If you don't need regexp support, use:
- ``DUK_OPT_NO_REGEXP_SUPPORT``.
* Duktape debug code uses a large, static temporary buffer for formatting
debuglog lines. Use e.g. the following to reduce this overhead:
- ``-DDUK_OPT_DEBUG_BUFSIZE=2048``