Skip to content

Performance

Wang Xin edited this page Apr 13, 2020 · 5 revisions

Performance and memory

Test date: 4/13/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 7.8 1.12 0.33 2.3
gimli 9.3 1.03 0.87 2.7
CoreMark 6.0 1.33 0.52 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

Compilation option: -Os

Workload GCC compiled native binary (KB) Wasm bytecode (KB) iwasm-aot module (KB)**
coremark 23120 10479 24496
base64 10224 6284 7236
gimli 10224 905 2240

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