2022.06.12
Diary
とある JS の画像処理ライブラリが OpenCV っぽいのに全部 JS 手書きなのでパフォーマンス的にそれはどうなんかなーって OpenCV の JS (wasm) 版で同じように作ってみたらそっちのが遅い…ので OpenCV.js を SIMD, Threading を有効にしたバージョンを自前ビルドしてみたけど動かすのに手間取っている。
とある JS の画像処理ライブラリが OpenCV っぽいのに全部 JS 手書きなのでパフォーマンス的にそれはどうなんかなーって OpenCV の JS (wasm) 版で同じように作ってみたらそっちのが遅い…ので OpenCV.js を SIMD, Threading を有効にしたバージョンを自前ビルドしてみたけど動かすのに手間取っている。
Swift でというか UIKit で UIView のうえにのっかってるボタンをタップしたときにボタンだけじゃなくてその下の UIView の touchBegan とかも呼ばれてしまうやつをなんとかしたくて JS なら event.stopPropagation とかやるところがぜんぜんわからんし responder chain がどうこうもいまいちよくわからんので結局 UITouch.view で分岐みたいにしたけどなんかきもいので定石が知りたい。
なんか変に JS 最適化スイッチがはいってしまって OpenCV.js より vanilla JS のが速いなら速いアルゴリズムを WebAssembly 化したらもっと速くなるのでは?と Rust から WASM 出力するのをやりはじめたけど調べてるうちにもとが JS なら AssemblyScript のが移植しやすいよなーとそっちで書き始めたけど ArrayBuffer を JS 界と WASM 界で をやりとりすると絶対にコピーが走ってしまうが気になってもとの JS をもういちどちゃんとプロファイリングしたら明らかに無駄なところを発見して修正したら処理時間半分になったのでちゃんとプロファイリングするのは大事。