[討論] 有公司使用到WASM技術了嗎?
只是sideproject需求 想說wasm出來也算幾年了
撇開.NET的Blazor框架不談 (是說轉戰Blazor的公司也不多的感覺)
目前好像看到wasm應用的機會不是很廣
不是說它不厲害 而是到底要做什麼方面的應用
當然我知道可以port c/c++其他語言到網頁上 移植遊戲
或是做一些比較需要高效能的運算等等 不過一般狀況下好像就不知道怎樣應用好
但我之前有一個構想 就是上傳圖片.縮圖.壓縮 或是上傳影片
這些原來的設計多數是把檔案原封不動上傳到後端 再從後端排程處理
如果前端可以直接處理掉圖片.影片的縮圖與壓縮 再把處理結果上傳到後端
理論上可以減輕後端負擔以及節省上傳頻寬資源
自己是想用這種方式來處理相簿上傳照片的處理方式 所以稍微study實作了概念
https://github.com/erspicu/LanczosWasmDemo
Lanczos縮圖法 大概是幾年前我所知縮圖品質比較好的方式 實作也不會太複雜
我自己用在x64 win11環境下測試用.net framework 最優化後
(用很c風格的指標處理方式+多核平行運算)
好比說4096*3072 縮到1600x1200 一張圖計算大概都是100ms內 一瞬間的事情
原本參考這方式
https://koshian2.hatenablog.jp/entry/2017/11/23/212813
但這效能差 而且其實算出來的畫面有些問題
想說效果很不錯想把縮圖算法移植到wasm功能上
剛好看到 https://tinyurl.com/mrm2r86r 這篇
可以用我比較熟悉的c#去做移植
但移植出來的成果運算速度差 .net framework在win11 x64上太多
可能有100倍以上差異 打個比方 90ms 變成 9秒
原本以為可以把c#編譯成不需要仰賴.net虛擬機的方式跑
結果稍微看架構 好像是把.NET虛擬機在WASM實作然後去跑.NET PORT過去的東西
加上在瀏覽器WASM環境內 沒有像直接跑在電腦上 有JIT優化
所以速度有差 (wasm虛擬機跑.net虛擬機跑.net cli 套娃...)
但不排除有再優化的可能性 像C#的Parallel.For
移植到WASM上後 其實並沒有平行加速運算的實際效能...
給大家研究看看 (所以最後還是換成單純迴圈)
C/C++ N年沒相關工作經驗寫了 說不定C移植過去效能會好上非常多
我的專案就分享給對C#在WASM應用有興趣的人參考
https://github.com/erspicu/LanczosWasmDemo
也希望加速的部分 可以分享解決方案
Parallel.For 也不知道實際移植過去到底是怎樣
平行處理的部分可能用別方式置換掉
Web Worker或是webgpu不知道可不可行
最終我心中的理想應用場景 大概是使用者上傳圖片和影片
把縮圖跟編碼的工作丟給前端處理完上傳
這大概是目前我想到還滿好用通用的應用場景
ps.c#移植wasm,其實滿多功能無效,編譯器會提醒,
有些功能不然就要找別方案替代,不然就要自己實作,
所以也不是爽爽可以無痛把c#相關資源丟到前端上
牽涉到跟os依賴的部分 很多都不可用 看跳一堆警告
最後毅然把原本的bitmap物件使用移除掉了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.68.24.12 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1719856322.A.765.html
推
07/02 01:55,
2月前
, 1F
07/02 01:55, 1F
→
07/02 01:55,
2月前
, 2F
07/02 01:55, 2F
→
07/02 01:55,
2月前
, 3F
07/02 01:55, 3F
→
07/02 01:55,
2月前
, 4F
07/02 01:55, 4F
類似做法 看他的GITHUB 一些演算法.編解碼也是用WASM移植其他語言專案
但.NET方案有點像套娃 理論上他的效能會比較好 有現成工具可以順利應用的話
如果效果理想 大概就可以直接用了
※ 編輯: erspicu (219.68.24.12 臺灣), 07/02/2024 02:15:47
→
07/02 03:33,
2月前
, 5F
07/02 03:33, 5F
推
07/02 06:17,
2月前
, 6F
07/02 06:17, 6F
→
07/02 06:19,
2月前
, 7F
07/02 06:19, 7F
→
07/02 06:20,
2月前
, 8F
07/02 06:20, 8F
→
07/02 06:22,
2月前
, 9F
07/02 06:22, 9F
→
07/02 06:24,
2月前
, 10F
07/02 06:24, 10F
→
07/02 06:25,
2月前
, 11F
07/02 06:25, 11F
推
07/02 06:35,
2月前
, 12F
07/02 06:35, 12F
→
07/02 06:36,
2月前
, 13F
07/02 06:36, 13F
→
07/02 06:38,
2月前
, 14F
07/02 06:38, 14F
→
07/02 06:39,
2月前
, 15F
07/02 06:39, 15F
推
07/02 06:39,
2月前
, 16F
07/02 06:39, 16F
推
07/02 06:46,
2月前
, 17F
07/02 06:46, 17F
→
07/02 06:47,
2月前
, 18F
07/02 06:47, 18F
推
07/02 06:58,
2月前
, 19F
07/02 06:58, 19F
→
07/02 06:59,
2月前
, 20F
07/02 06:59, 20F
推
07/02 13:50,
2月前
, 21F
07/02 13:50, 21F
→
07/02 15:38,
2月前
, 22F
07/02 15:38, 22F
→
07/02 19:23,
2月前
, 23F
07/02 19:23, 23F
→
07/02 19:24,
2月前
, 24F
07/02 19:24, 24F
推
07/02 19:25,
2月前
, 25F
07/02 19:25, 25F
→
07/02 19:26,
2月前
, 26F
07/02 19:26, 26F
→
07/02 19:27,
2月前
, 27F
07/02 19:27, 27F
→
07/02 19:27,
2月前
, 28F
07/02 19:27, 28F
→
07/02 23:33,
2月前
, 29F
07/02 23:33, 29F
→
07/02 23:34,
2月前
, 30F
07/02 23:34, 30F
→
07/02 23:34,
2月前
, 31F
07/02 23:34, 31F
→
07/04 18:26,
2月前
, 32F
07/04 18:26, 32F
→
07/05 15:17,
2月前
, 33F
07/05 15:17, 33F
→
07/05 15:17,
2月前
, 34F
07/05 15:17, 34F
推
07/05 15:19,
2月前
, 35F
07/05 15:19, 35F
推
07/06 02:12,
2月前
, 36F
07/06 02:12, 36F
討論串 (同標題文章)