Skip to content

Performance

Wang Xin edited this page Mar 12, 2020 · 5 revisions

Performance and memory

Test date: 3/12/2020

X86 platform:

CPU:Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz
OS :ubuntu 18.04
Compiler:gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1), flag: O3

performance comparison:

workload wamr-aot / wasm3 wasm3 / wamr-interpreter wamr-aot / GCC(O3) wamr interpreters (fast/classic)
matrix 8.5 1.05 0.34 2.1
gimli 8.4 1.03 0.77 2.7
CoreMark 5.9 1.28 0.49 2.5

Note

  • WAMR provides two interpreters - the fast version for advanced performance and and the classic version smaller footprint respectively.
  • Workload CoreMark is measured by its reported scores, and other workloads matrix and gimli are measured by the execution time.

ARMV7 Cortex-M7:

Board: nucleo_f767zi (ARMV7 Cortex-M7)
OS : Zephyr
Compiler: arm-zephyr-eabi-gcc (crosstool-NG 1.24.0.37-3f461da-dirty) 9.2.0, Os

performance comparison:

workload wamr-aot/wasm3 wasm3/wamr-interpreter wamr interpreters (fast/classic)
matrix 24.3 1.09 1.75
gimli 20.8 1.08 2.06
seqhash 10.2 1.15 1.46

Memory consumption

workload: CoreMark
measurement tool: valgrind/massif

WASM interpreter Peak memory usage
WAMR classic 288KB
WAMR fast 363KB
wasm3 522KB

WASM application binary size

Workload GCC compiled native binary (KB) Wasm bytecode (KB) iwasm-aot module (KB)**
coremark 23120 10542 32108
base64 10224 6284 7440
gimli 10224 905 3204

Misc.

The page is also a response to the data published by wasm3 at https://github.com/wasm3/wasm3/blob/master/docs/Performance.md.

Some background of the performance comparison between WAMR and wasm3:

https://github.com/bytecodealliance/wasm-micro-runtime/issues/134

Clone this wiki locally