mirror of https://github.com/svaarala/duktape.git
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.
109 lines
2.9 KiB
109 lines
2.9 KiB
#!/bin/sh
|
|
#
|
|
# Manual script to get index page footprint/RAM figures.
|
|
#
|
|
|
|
set -e
|
|
#set -x
|
|
|
|
ARCHOPT=-m32
|
|
#ARCHOPT=-mthumb
|
|
|
|
echo ""
|
|
echo "***"
|
|
echo "*** default"
|
|
echo "***"
|
|
echo ""
|
|
|
|
rm -rf /tmp/duk-index-tmp
|
|
rm -f /tmp/hello
|
|
python2 tools/configure.py \
|
|
--source-directory src-input \
|
|
--output-directory /tmp/duk-index-tmp \
|
|
--config-metadata config
|
|
gcc -o/tmp/hello $ARCHOPT -std=c99 -Wall -Os \
|
|
-fomit-frame-pointer -flto \
|
|
-fno-asynchronous-unwind-tables \
|
|
-ffunction-sections -Wl,--gc-sections \
|
|
-fno-stack-protector \
|
|
-I/tmp/duk-index-tmp \
|
|
/tmp/duk-index-tmp/duktape.c examples/hello/hello.c -lm
|
|
size /tmp/hello
|
|
valgrind --tool=massif --massif-out-file=/tmp/duk-massif.out /tmp/hello
|
|
ms_print /tmp/duk-massif.out | head -20
|
|
|
|
echo ""
|
|
echo "***"
|
|
echo "*** lowmem"
|
|
echo "***"
|
|
echo ""
|
|
|
|
rm -rf /tmp/duk-index-tmp
|
|
rm -f /tmp/hello
|
|
python2 tools/configure.py \
|
|
--source-directory src-input \
|
|
--output-directory /tmp/duk-index-tmp \
|
|
--config-metadata config \
|
|
--option-file config/examples/low_memory.yaml
|
|
gcc -o/tmp/hello $ARCHOPT -std=c99 -Wall -Os \
|
|
-fomit-frame-pointer -flto \
|
|
-fno-asynchronous-unwind-tables \
|
|
-ffunction-sections -Wl,--gc-sections \
|
|
-fno-stack-protector \
|
|
-I/tmp/duk-index-tmp \
|
|
/tmp/duk-index-tmp/duktape.c examples/hello/hello.c -lm
|
|
size /tmp/hello
|
|
valgrind --tool=massif --massif-out-file=/tmp/duk-massif.out /tmp/hello
|
|
ms_print /tmp/duk-massif.out | head -20
|
|
|
|
echo ""
|
|
echo "***"
|
|
echo "*** full lowmem"
|
|
echo "***"
|
|
echo ""
|
|
|
|
cat >/tmp/duk-lowmem.yaml <<EOF
|
|
DUK_USE_ROM_OBJECTS: true
|
|
DUK_USE_ROM_STRINGS: true
|
|
DUK_USE_ROM_GLOBAL_INHERIT: true
|
|
|
|
DUK_USE_REFCOUNT16: true
|
|
DUK_USE_REFCOUNT32: false
|
|
DUK_USE_STRHASH16: true
|
|
DUK_USE_STRLEN16: true
|
|
DUK_USE_BUFLEN16: true
|
|
DUK_USE_OBJSIZES16: true
|
|
DUK_USE_HSTRING_CLEN: false
|
|
DUK_USE_HSTRING_LAZY_CLEN: true # must be lazy when clen field dropped
|
|
DUK_USE_HOBJECT_HASH_PART: false
|
|
|
|
DUK_USE_HEAPPTR16: true
|
|
DUK_USE_HEAPPTR_ENC16:
|
|
verbatim: "#define DUK_USE_HEAPPTR_ENC16(ud,p) duk_alloc_pool_enc16((p))"
|
|
DUK_USE_HEAPPTR_DEC16:
|
|
verbatim: "#define DUK_USE_HEAPPTR_DEC16(ud,x) duk_alloc_pool_dec16((x))"
|
|
|
|
DUK_USE_STRTAB_PTRCOMP: true
|
|
EOF
|
|
|
|
rm -rf /tmp/duk-index-tmp
|
|
rm -f /tmp/hello
|
|
python2 tools/configure.py \
|
|
--rom-support --rom-auto-lightfunc \
|
|
--source-directory src-input \
|
|
--output-directory /tmp/duk-index-tmp \
|
|
--config-metadata config \
|
|
--option-file config/examples/low_memory.yaml \
|
|
--option-file /tmp/duk-lowmem.yaml \
|
|
--fixup-line '#include "duk_alloc_pool.h"'
|
|
gcc -o/tmp/hello $ARCHOPT -std=c99 -Wall -Os \
|
|
-fomit-frame-pointer -flto \
|
|
-fno-asynchronous-unwind-tables \
|
|
-ffunction-sections -Wl,--gc-sections \
|
|
-fno-stack-protector \
|
|
-I/tmp/duk-index-tmp -Iextras/alloc-pool \
|
|
-DDUK_ALLOC_POOL_TRACK_HIGHWATER -DDUK_ALLOC_POOL_TRACK_WASTE \
|
|
/tmp/duk-index-tmp/duktape.c examples/hello/hello_ptrcomp.c extras/alloc-pool/duk_alloc_pool.c -lm
|
|
size /tmp/hello
|
|
valgrind --tool=massif --massif-out-file=/tmp/duk-massif.out /tmp/hello
|
|
ms_print /tmp/duk-massif.out | head -20
|
|
|