2026年のWebAssemblyランタイムの性能

2026/09/09 19:00

2026年のWebAssemblyランタイムの性能

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

日本語翻訳:

元の要約は明確で簡潔であり、源データを忠実に反映しています。あいまいな表現や混乱を招く言語を用いることなく、主なメッセージを効果的に伝えています。

Text to translate

The original summary is clear, concise, and faithful to the source data. It effectively conveys the main message without introducing vague phrasing or confusing language.

本文

WebAssembly ランタイムの性能検証とベストプラクティス

以前(2019 年・2021 年・2023 年)実施された libsodium の WebAssembly ベンチマークに続き、**「最新のランタイムがネイティブコードを凌駕するか」あるいは「どのランタイムが最も高速か」**を確認しました。

マイクロベンチマークの議論ではなく、実用的な問いです:同じ C 言語による暗号コードを最新、1 年前、2 年前の WebAssembly ランタイムで実行し、実際の性能改善が見られるのか


結論(短縮版)

  • Wasmer が最もパフォーマンスが高く、その次は WAVM、WAMR、Wasmtime で差が小さいです。
  • WAVM は最適化機能が優れており、標準的な Portable WebAssembly から非常に高速なコードを生成できます。
  • ランタイムがサポートする際、暗号コードに対しては WebAssembly の汎用算術命令(
    wide_arithmetic
    )の導入が大きな意味を持ちます

測定環境と内容

テストプログラム

libsodium コミット

8e3be8615ba6adcd7babaecf5e76f516890ba5fb
からビルドされたベンチマークスイートを使用。

構築バリアント

ネイティブの基準線として 1 つと、以下の WebAssembly バリアントを構築しました。

バリアント説明
ネイティブ x86-64Zig を使用し、ローカル CPU ターゲット指定 (
-Dcpu=native
)
標準的な WebAssemblyLime1 なし、SIMD なし
Lime1
lime1
機能付与
Lime1 + SIMD128
lime1
simd128
を追加
Lime1 + SIMD128 + Wide Arithmeticさらに汎用算術 (
wide_arithmetic
) を追加

コンパイル設定

  • ネイティブ基準値:
    -Dcpu=native
    オプションを使用。
  • WAVM (wasm2c):
    zig cc -O3 -march=native
    でコンパイル。
  • WAMR (AOT モード):
    --cpu=native
    非対応のため、ホスト利用可能機能 (
    x86_64-v4
    ) と整合する設定を使用。
    --target=x86_64 --cpu=x86-64-v4 --opt-level=3
    

実行環境

  • CPU: AMD Ryzen AI 9 HX 470(12 コア・24 スレッド)
    • CPU ブースト無効化、最大クロック周波数設定
      2 GHz
  • OS: Linux 7.1.0-rc7
  • Zig: 0.17.0-dev.948+e949341b7

データ集計方法

各ベンチマークのスローダウン率(ネイティブに対する比率)の幾何平均です。

  • 値が低いほど良い(例:
    2.0
    は「ネイティブの 2 倍遅い」を意味)。
  • ITERATIONS=3
    を使用したため、小さいテストはノイズが大きく量子化されています。
  • 集計には、ゼロ時間を報告した行は除外しました。

ランタイムのバージョン比較

ランタイム2024 年版2025 年版2026 年版
Bun1.1.161.2.171.3.14
Node22.3.024.2.026.3.1
WAMR2.1.02.3.12.4.4
WABT wasm2c1.0.351.0.371.0.41
WasmEdge0.14.00.14.10.17.0
Wasmer4.3.26.0.17.1.0
Wasmtime22.0.034.0.046.0.0
WAVMn/an/anightly/2026-04-05
Wazero1.7.31.9.01.12.0

: WAVM の歴史的比較は困難です(古いバイナリが実行拒絶)。WAMR 2.1.0 は AOT コンパイルで失敗したため集計から除外。


ベース WebAssembly ビルドの傾向分析

普遍的な傾向はありませんでしたが、特定のランタイムでは明確な改善が見られました。

  • Wasmtime: 年々安定して高速化しました(2024 年:2.67 倍 → 2025 年:2.54 倍 → 2026 年:2.41 倍)。
  • Node: 緩やかに改善し、スローダウン率が減少しました(8.60 倍 → 7.95 倍)。
  • Wazero: ほぼ横ばいです(4.84 倍 → 4.72 倍)。実質的な変化はありません。
  • WAMR (AOT): 2025 年から高速化し、2026 年でも同等維持(1.59 倍 → 1.57 倍)。
  • Wasmer: 2025 年版で退歩しましたが、2026 年版で回復。2024 年とほぼ遜色ない性能を維持。
  • wasm2c: 2026 年で適度な改善が見られ、AOT 変換可能なため依然として最良の選択肢の一つです。
  • Bun: 2024/25 年は劣っていましたが、2026 年に劇的な改善(約 3 倍)を遂げました。
  • WasmEdge: コマンドライン振る舞いの修正により正常化。AOT モード設定で 1.74 倍になり、中間位置に復帰。

CPU 機能バリアントによる性能向上

WebAssembly の機能導入による影響はランタイムごとに異なります。

Lime1 / SIMD128

  • ここでの魔法ではありません。状況によって助けになる場合もあれば、害になる場合もあり、ノイズに埋もれることもあります。

汎用算術 (wide_arithmetic) ⭐ 最重要

  • 実験全体で見られる最大の速度向上をもたらしました。
  • Wasmtime と Wasmer のみがフルな汎用算術ビルドを実行可能でした。

比較データ(ネイティブに対するスローダウン率)

ランタイム汎用算術なし汎用算術あり (wide_arithmetic)改善効果
Wasmtime 46.0.02.41 倍1.46 倍⬇️ 大幅改善
Wasmer 7.1.02.08 倍1.33 倍⬇️ 大幅改善

解説: libsodium の高コストな操作の多くは演算密集型です。WebAssembly ISA が演算を直接表現できる場合、ランタイムは C コンパイラが既に知っていることを再発見するための作業量が大幅に減ります。


失敗事例と避けるべき設定

多くの実行はクリーンに完了しましたが、以下の場合は注意が必要です。

  • Bun 1.2.17: 基準ビルドにおいて
    box_easy
    で失敗しました。
  • Bun 1.1.16: Lime1 および Lime1+SIMD128 ビルドにおいて
    pwhash_argon2i
    で失敗しました。
  • Node 22.3.0: 初期設定では
    pwhash_argon2i
    ,
    argon2id
    ,
    scrypt
    で失敗。
    • JavaScript ヒープ/スタック増設では修正不可能でした。
    • 解決策: Wasm モジュールに明示的な最大線形メモリを指定 (
      1024 ページ / 64 MiB
      ) することで修正可能になりました。
    • ※ただし、これは V8 のメモリアドレスモードの閾値であり、「単純にメモリを増やす」という意味ではありません(512 ページでは失敗、1536 ページ以上でセグメンテーション)。
  • WAMR 2.1.0: AOT モードでも基準モジュールがコンパイルできませんでした。
  • WAMR 2.3.1 / 2.4.4: 汎用算術ビルドはサポートされていませんでした。

注意: 上記の失敗した行と、中央値がゼロだったベンチマーク行は集計から除外しました。


ランタイムは本当に高速化しているか?

結論:はい、いくつかのランタイムは明確に高速化しています

ランタイム評価
Wasmtime明確な「はい」:毎年少しずつ高速化。
Node⚠️ 「はい」だが緩やか: 改善傾向はありますが傾斜が緩い。
Bun🚀 劇的な「はい」: 2025→2026 で大きな飛躍。改善の余地はまだある。
Wazeroほぼ横ばい: 実質的な変化なし。
WAMR優れた位置: 「横ばい」だが、ネイティブ比 1.4〜1.6 倍という極めて優秀な領域にある。
Wasmer回復・最適化: 汎用算術サポートにより、実用的な答えに達した。
wasm2c最良: ネイティブ C への AOT 変換可能なため、超えにくい。
WAVM最高値: 2026 ベースでは最も高速だが、過去データ不足。
WasmEdge修正により安定: AOT モード設定で高速化維持。

まとめと推奨事項

WebAssembly で CPU 負荷の高い暗号を実行する場合でも、ランタイムの選択は依然として非常に重要です

1. 性能の差が大きい

  • Wasmer (汎用算術あり): ネイティブ比
    1.33
  • Bun (基準値): ネイティブ比
    8.77
    • 同じ環境でも約 6 倍の差が出る可能性があります。

2. 機能サポートが重要

同じランタイムでも、汎用算術指令 (

wide_arithmetic
) を利用できるようになることで、「まあまあ良い」から「驚くほどネイティブに近い」へと変化します。

3. 主流のランタイムは停滞していない

  • Wasmtime: 安定して改善し続けています。
  • Bun: 大きな飛躍を果たしています。
  • Wasmer: 暗号ワークロードにとって重要な機能(汎用算術)を獲得しました。
  • WasmEdge: AOT ラン実行モードの明示化により、高速化を維持しています。

アドバイス

WebAssembly のパフォーマンスはランタイム、リリース、有効な機能、JS→WASI のパス、AOT コンパイルの有無などによって依存します。実際のワークロードをベンチマークしてください

しかし、あなたのワークロードが libsodium に見られる場合、2026 年の答えは以下の通りです:

  • WebAssembly はネイティブに近いことが可能
  • 汎用算術 (
    wide_arithmetic
    ) は必須
  • はい、一部のランタイム(Wasmer, Wasmtime など)は本当に高速化しています

同じ日のほかのニュース

一覧に戻る →

2026/09/13 1:25

OpenStreetMap に最初の変更を加える

## Japanese Translation: OpenStreetMap は、近隣の店舗や施設に公式ウェブサイトのタグを追加することで、有意義な貢献を誰もが求めるよう呼びかけています。この作業は 15 分以内で完了可能です。この単純な行動は、米国だけで 100 万を超える店舗が存在するにもかかわらず、アクティブなマッパーの数はそれに比べて遥かに少ないという重要なデータギャップに対処しています。既存のエントリの多くはこの不可欠なウェブ住所を欠いています。無料の JOSM エディタと、そのウェブサイトウィザードプラグインを活用することで、貢献者は不足しているタグを効率的に特定できます。単一のウェブサイトタグを追加するだけで、マッピングソフトウェアは電話番号、営業時間、メールアドレスなどの重要な詳細情報を自動的に推測でき、世界中で利用可能な多数の無料サービスへのデータ提供を強化します。著者は、シアトルのウォリングフォード地区で 1 つのチェンジセット内にて 66 の新規タグを追加するだけでその影響を実証しました。結局のところ、これらのツールの普及啓発は、誰でも無料で利用できるより完全なデジタル地図の構築に貢献します。 ## Text to translate: The original summary is high quality and well-balanced, so it does not require improvement. ## Summary: OpenStreetMap invites everyone to make a meaningful contribution by adding official website tags to nearby shops or amenities—a task achievable in under fifteen minutes. This simple action addresses a critical data gap, especially given that the U.S. alone hosts over one million shops while active mappers are far fewer; many existing entries lack these crucial web addresses. Using the free JOSM editor and its Website Wizard plugin, contributors can efficiently locate missing tags. Adding a single website tag automatically enables mapping software to infer other vital details like phone numbers, opening hours, and emails, enriching data for dozens of free services worldwide. The author demonstrated this impact by adding sixty-six new tags in Seattle's Wallingford neighborhood in one changeset. Ultimately, spreading awareness of these tools helps build a more complete digital map for everyone to use at no cost.

2026/09/13 5:25

Real-SWE:AI モデルを実際の企業コードベースでの運用におけるベンチマーク評価

## Japanese Translation: 2026年9月、新しい Real-SWE ベンチマークが、実際の企業からライセンスされた私有のリアルワールドエンタープライズコードベースにおいて、最先端 AI モデルに挑戦する。これに対し、以前の公衆インターネットデータを用いた評価では約 99% のトークンが隠されていたが、このベンチマークでは課題は孤立したサンドボックスから直接verbatim またはインスピレーションを得られた形で抽出されており、ここでは機密生産コードとビジネス結果への影響シナリオ(例:請求書、税金、移行)が含まれる。評価はモデル単体ではなく、モデルおよびハーネスの組み合わせを測定しており、エンタープライズエンジニアの実際の作業方法を反映している。解決率は、各課題につき 8 回の独立したランにわたる pass@1 の平均値として量化され、95% 信頼区間が示される。 タスクは平均して短く、中位値では約 1,742 文字であり、Terminal-Bench よりもはるかに短いが、DeepSWE や FrontierCode よりも長い。各参考ソリューションは通常、中位値で約 11 ファイルを編集する。性能には大きなばらつきがある:上位の解決率には Fable 5.1(38.8%)、GPT-6 AstraCodex CLI(33.8%)、Gemini 3.8 FlashGemini CLI(31.2%)、GLM 5.3Claude Code(28.8%)、Gro k 4.6Grok Build/Muse Spark 1.3Muse Code(23.8%)が含まれる。モデルは短いロールアウトでも苦戦する:約 71% のロールアウト(10 分未満)が失敗したのに対し、より長いロールアウトでは約 73% が失敗しており、最も一般的な失敗モードは要件の欠落であり、どのモデルもすべての課題を解決することはできない。 展開コストもモデルによって大きく異なる:選択するモデルによっては約 2.50 ドルから 6.96 ドル程度で変動し(Gemini 3.8 Flash は下限、Fable 5.1 は上限)、一部のモデルでは報告されていない高いコストが発生する可能性もある。この変化により、エンタープライズエンジニアは、標準的な公衆データベンチマークではほとんど準備がなされない制限された環境において、複雑な固有のパターンとビジネスリスクをナビゲートすることになる。

2026/09/09 10:57

Apple iPod エングレーバー(2019)

## 日本語翻訳: 2005 年、Apple のエンジニアは「iPod のパーソナライズ」ウェブページを革新し、巧妙な回避策を用いて静的フォームをインタラクティブなショッピングツールへと変換しました。このアップグレード以前には、顧客はカスタム製品を表示することなく、単なるテキスト入力を記入するしかできませんでした。これを解決するために、開発者は JavaScript を用いて JPEG 画像を切り替え、ユーザーがデバイスを実時間で視覚化できるようにする回転する iPod アニメーションを作成しました。また、ユーザーがタイプしたテキストに基づいてエンベージングオーバーレイを動的に生成する ImageMagick ソフトウェアを採用し、顧客が製品上に自分の名前が表示される様子を正確にプレビューできるようになりました。さらに、CSS クラスの切り替えによって古典的な黄色いフェード効果をシミュレートし、出荷見積もりに対する動的なフィードバックを提供しました。これらの手法は早期ブラウザ技術の深刻な制限に依存していましたが、顧客体験を向上させる能力においてほぼ魔法のように感じられました。この歴史的プロトタイプは、限られた技術的手段であっても、ウェブイノベーションが製品のカスタマイズ性を大幅に改善し、購入前のバイヤーの信頼性を高め、将来的なインタラクティブ電子商取引デザインのための基準を設定できることを証明しました。