How to cache wasm module in nodejs, or it's already cached on startup ?
オープン
まだ誰も着手していません。
stale
wasm
- 主要言語
- JavaScript
- スター
- 122k
- フォーク
- 37.3k
- 平均マージ
- 4日 2時間
- マージ済み PR(30日)
- 283
説明
according to this https://github.com/rustwasm/wasm-bindgen/issues/2473
Summary
I created comparison between manual javascript haversine function, and wasm based.
the result if i compared including the module initialization, wasm based getting much slower than javascript itself.
Additional Details
console.time("manual")
const haversinee = require("../func/haversine")
const src = {
lat: -7.0,
lng: 7.0
}
const dst = {
lat: -8.0,
lng: 8.0
}
console.log("manual js : "+ haversinee(src, dst, false))
console.timeEnd("manual")
console.time("wasm")
const {Point, haversine} = require("haversinecalc") // this is the problem
const src_p = new Point(-7.0,7.0)
const dst_p = new Point(-8.0,8.0)
console.log("using wasm : "+ haversine(src_p, dst_p))
console.timeEnd("wasm")
Result with module initialization included
manual js : 156581.10278754708
manual: 12.337ms
using wasm : 156581.10278754708
wasm: 18.109ms
Result without module initialization
manual js : 156581.10278754708
manual: 7.709ms
using wasm : 156581.10278754708
wasm: 0.287ms
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず require("../func/haversine") と require("haversinecalc") を使って時間の比較を再現し、次にモジュール初期化のコンテキストについて、リンクされている wasm-bindgen の issue を読んでください。有用な成果は、関連する Node.js のモジュール読み込みの挙動と、初期化を繰り返し呼び出しから分離してベンチマークする方法を説明する文書化された回答です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- javascript, node.js, wasm
- 領域
- backend, developer-experience
- issue の種類
- ドキュメント
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 活発
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 35/100