Skip to content

Performance

Wenyong Huang edited this page Sep 3, 2020 · 5 revisions

Performance and memory

Test date: 9/1/2020

X86-64 platform:

CPU:Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz
OS :ubuntu 18.04 64-bit
Compiler:gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04), flag: O3

performance comparison:

workload wamr-aot / wasm3 wasm3 / wamr-interpreter wamr-aot / GCC(O3) wamr interpreters (fast/classic)
matrix 22.02 1.23 0.68 2.47
gimli 9.94 1.07 0.94 2.08
CoreMark 8.79 1.32 0.79 2.52

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 30.17 1.06 1.65
gimli 19.13 1.11 2.03
seqhash 21.12 1.15 1.34

Memory consumption

workload: CoreMark
measurement tool: valgrind/massif

WASM interpreter Peak memory usage
WAMR classic 365KB
WAMR fast 485KB
wasm3 514KB

WASM application binary size

Compilation option: -Os

Workload GCC compiled native binary (KB) Wasm bytecode (KB) iwasm-aot module (KB)**
coremark 23120 10457 17348
base64 8792 1026 1840
gimli 8640 498 1080

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