Zaplibのポストモーテム: WASMは思ったほど速くありません。
(zaplib.com)もともとZaplibというプロジェクトは、次の仮説から始まりました。
- JSとブラウザは遅い
- JSを段階的にRust/Wasmへ移植すれば、アプリは高速化する
- 小さな移植から始めて拡張し、アプリ全体を置き換える
- 長期的には、これは次世代スタック(「アプリのためのUnity」)へ進化する
しかし、複数のプロトタイプとユースケースの結果、WASMは一般的に約2倍程度速いにとどまりました。
10倍まで高速化するには、Rustのゼロコスト抽象化を最大限活用し、100万個のオブジェクトを処理する程度である必要があり、これは導入コストのほうがはるかに大きいことを意味していました。
むしろ、WebGLを利用したグラフィックスアクセラレーションの影響のほうがはるかに大きかったです。
WASMを使うことで有名なFigmaも、C++コードを活用するための歴史的な理由があり、主要な性能向上の要因はWebGLでした。
2件のコメント
あっ。最後を書くのを忘れていましたが..
そのため、プロジェクトはメンテナンスモードに移行しました。
Zaplib - RustとWASMでWebアプリを高速化するオープンソース
https://ja.news.hada.io/topic?id=6343 で取り上げられたことのあるプロジェクトです。
この記事を読むと、WebGLを学びたくなってきますね。
以前見たとき、ドキュメントがとてもよく整備されていました。
https://webglfundamentals.org/webgl/lessons/ko/
https://webgl2fundamentals.org/webgl/lessons/ko/