Recently, I have created an app in Rust language for macOS then to make it cross-platform, ported it for other platforms using WebAssembly.
I have ported the app for these platforms:
Initially, I had made it on macOS where it runs very fast but on Windows it gets slowed down so much that is clearly visible.
So I tried to measure it somehow for which I took a command for the app which decodes the input parameter. Here is that command,
> ds -d 31kk ⟶ 3-1-2020
Now I need to measure the timelapse after each execution for which I'd used
> w32tm /query /status /verbose | find "Time since" && node ds -d 31kk && w32tm /query /status /verbose | find "Time since" && deno ds -d 31kk && w32tm /query /status /verbose | find "Time since" && wapm run ds -d 31kk && w32tm /query /status /verbose | find "Time since"
Where the application versions used for each platforms are
I have ported the app for these platforms:
- WAPM ⟶ Using WASI file as binary, i.e., generated via Rust
- Deno ⟶ Using WASM file as library, i.e., generated via Rust
- Node.js ⟶ Using WASM file as library, i.e., generated via Rust
Initially, I had made it on macOS where it runs very fast but on Windows it gets slowed down so much that is clearly visible.
So I tried to measure it somehow for which I took a command for the app which decodes the input parameter. Here is that command,
> ds -d 31kk ⟶ 3-1-2020
Now I need to measure the timelapse after each execution for which I'd used
> w32tm /query /status /verbose | find "Time since" && node ds -d 31kk && w32tm /query /status /verbose | find "Time since" && deno ds -d 31kk && w32tm /query /status /verbose | find "Time since" && wapm run ds -d 31kk && w32tm /query /status /verbose | find "Time since"
Where the application versions used for each platforms are
- wapm ⟶ 0.4.1
- node ⟶ 10.16.3
- deno ⟶ 0.28.0
Observation
So I got the data, which after processing gave me below table after 5 iterations on each platform at Windows.Iteration | node | deno | wapm |
1 |
3.265
|
3.410
|
5.651
|
2 |
3.347
|
3.792
|
5.573
|
3 |
3.381
|
3.517
|
5.575
|
4 |
3.190
|
3.529
|
5.688
|
5 |
3.412
|
3.577
|
5.672
|
In the above, table cell values are given in seconds.
Below is the plotted bar chart for this table.
Conclusion
As you can see in the chart the speed of node is highest while of wapm is lowest.So the speed in order would be like this,
There is marginal difference in between node & deno which uses wasm in comparison to wapm which uses wasi.
The wapm is wasmer based package manager and wasi runtime.
Comments
Post a Comment