-
Notifications
You must be signed in to change notification settings - Fork 736
Performance
Wang Xin edited this page Mar 12, 2020
·
5 revisions
Test date: 3/12/2020
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
CoreMarkis measured by its reported scores, and other workloadsmatrixandgimliare measured by the execution time.
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 |
workload: CoreMark
measurement tool: valgrind/massif
| WASM interpreter | Peak memory usage |
|---|---|
| WAMR classic | 288KB |
| WAMR fast | 363KB |
| wasm3 | 522KB |
| 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 |
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
WebAssembly Micro Runtime