Wasm v.s. JS ~パフォーマンスは「遅いか速いか」よりも「間に合うか、間に合わないか」~

YAMAMOTO Yuji (山本悠滋)

2025-10-19 新宿御苑.wasm

はじめまして! 👋😄

📝今日話すこと

⚠️おことわり

🤔WasmとJS、どっちが速い?

🙋‍♂️Quick Survey Time!

😡じゃあどっちにすればいいの?!

「間に合わない」とは

「○○は××より速い」 — 本当に?

「Wasm v.s. JS」の難しさ

架空の例: WasmもJSも速くなる場合 (1)

Wasmの方が有利な部分によって、Wasmの方が総合的に高速な場合のイメージ

昔寄稿したSoftware Designの記事の図を流用しています🙇

架空の例: WasmもJSも速くなる場合 (2)

JSの方が有利な部分によって、JSの方が総合的に高速な場合のイメージ

昔寄稿したSoftware Designの記事の図を流用しています🙇

類似主張1: 『ガベージコレクション』より

よくある質問として、どのGC を使うのが最もよいのか、というものがある。しかし、単純に答えたくなる誘惑には、抵抗しなければならない。まず第1 に、「最もよい」とはどういう意味だろう? アプリケーションのスループットを最も高くするという意味だろうか。それとも、最も停止時間が短いGC が欲しいのだろうか。空間の利用率は重要なのか? あるいは、こうした望ましい性質を組み合わせた折衷案を求めているのか? 第2 に、明白なことだが、たとえ単一の尺度を用いたとしても、アプリケーションが異なれば、GC 間の順位は違ってくる。たとえば、20 個のJava ベンチマークと6 つのGC を用いた研究の結果をFitzgerald and Tarditi[2000]が報告している。それによれば、どのGC も、少なくとも1 つのベンチマークにおいて、他のGC より15%以上遅かったという。またさらに、プログラムが利用できるヒープ空間を大きくすれば、プログラムの実行速度は速くなる傾向があるが、それだけでなく、GC 間の相対的な性能も与えられたヒープ空間の分量によって変わってくるのである。問題をさらに複雑にする点として、ヒープを大きくし過ぎると、時間的に関連の強いオブジェクトを引き離して配置してしまい、局所性が悪化してアプリケーションの実行速度が低下する可能性がある。

リチャード・ジョーンズ; アントニー・ホスキング; エリオット・モス. ガベージコレクション (p.89). 翔泳社. Kindle 版.

https://www.shoeisha.co.jp/book/detail/9784798134208

類似主張2: リアルタイム処理

(太字は私が加えたもの)

📝今日話したこと

(「📝今日話すこと」からのコピペ)