作者oopFoo (3d)
看板Soft_Job
标题Re: [讨论] 有公司使用到WASM技术了吗?
时间Sat Jul 6 04:00:15 2024
※ 引述《erspicu (.)》之铭言:
: 只是sideproject需求 想说wasm出来也算几年了
: 撇开.NET的Blazor框架不谈 (是说转战Blazor的公司也不多的感觉)
: 目前好像看到wasm应用的机会不是很广
wasm是一个vm,js是另一个vm,两个互相传资料其实很麻烦,最简单就是copy/拷贝资料过去,但效能就差。
大笔资料就是用SharedArrayBuffer来分享,但这个需要自己管理记忆体,并不是每个语言都适合的。所以後来才会有WasmGC的诞生。
: 自己是想用这种方式来处理相簿上传照片的处理方式 所以稍微study实作了概念
: https://github.com/erspicu/LanczosWasmDemo
: Lanczos缩图法 大概是几年前我所知缩图品质比较好的方式 实作也不会太复杂
: 但移植出来的成果运算速度差 .net framework在win11 x64上太多
: 可能有100倍以上差异 打个比方 90ms 变成 9秒
compiler很重要,你写的程式用<<16, >>16来 pack data,需要够聪明的compiler来最佳化。我会用array of struct {r,g,b}或直接用byteArray来减少compiler的变数。
: 但不排除有再优化的可能性 像C#的Parallel.For
: 移植到WASM上後 其实并没有平行加速运算的实际效能...
: 给大家研究看看 (所以最後还是换成单纯回圈)
: C/C++ N年没相关工作经验写了 说不定C移植过去效能会好上非常多
我自己有写个小Js Parallel.For的lib来应用webworkers。但webworker跟wasm都需要SharedArrayBuffer来分享data,所以并不是很容易用。
今天wasm,跟webworker无法普及起来,就是因为无法无脑用。
https://web.dev/case-studies/google-sheets-wasmgc
google花了很大的力气,才使java/wasmgc有2x Js的效能。
今天,网页的平台,实在不算好用,需要花足够的时间去学习,还要有够扎实的低阶语言能力,才能应用的好。但没办法,网页安全性是第一优先。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 76.39.14.143 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1720209620.A.7FD.html
1F:推 neo5277: 推个 优质好文 07/06 12:53
2F:推 MoonCode: SharedArrayBuffer 就类似 arrow 那样吗 07/06 14:28
3F:推 erspicu: 我觉得.NET在WASM的应用还有一个问题是 .NET也用自己的VM 07/06 19:18
4F:→ erspicu: 直接执行.NET有JIT优化 但.NET在WASM内应该没有类似机制 07/06 19:19
5F:→ erspicu: 而且这种套娃的VM内的VM也很耗损效能 07/06 19:19
6F:→ erspicu: WASMGC 好像还是实验性质,看这几年会不会变通用功能标准 07/06 19:21
7F:推 xxFrency: 虽然我听得一知半解,但先推 07/07 01:17
8F:→ oopFoo: dotNet也只能用wasm的byteCode,JIT都需要wasm的vm处理, 07/07 02:12
9F:→ oopFoo: 主要是wasm的vm优化不足,c#的compiler的frontEnd在wasm也 07/07 02:13
10F:→ oopFoo: 算是简易没优化的。wasm的c#应该不是vm inside vm, 07/07 02:44
11F:→ oopFoo: wasm的限制很多,例如只有32bit,只有4GB的memory。vm的 07/07 02:47
12F:→ oopFoo: byteCode也是极精简,不像java/dotNet。很多地方都需要再 07/07 02:50
13F:→ oopFoo: 打磨,延伸。WasmGC主要是延伸garbage collected object, 07/07 02:52
14F:→ oopFoo: 这样Java/dotNet/python/....的gc语言可以跟Js互通,大幅 07/07 02:53
15F:→ oopFoo: 简化互call的问题。 07/07 02:58
16F:→ oopFoo: wasm,webworker平台,因为安全性,与跨平台的限制,很多 07/07 03:01
17F:→ oopFoo: 东西需要修改架构,不是直间套用就可。但因为wasm vm的安 07/07 03:06
18F:→ oopFoo: 全性出发的设计概念,以後应该会普及到serverless的应用 07/07 03:09
19F:推 neo5277: 推补充 07/07 16:43
20F:→ ryanwang: 不妨使用webassembly版本OpenCV应该就可以达到目的 07/08 17:05
22F:→ ryanwang: 之前有客户用来开发配戴各种款式眼镜应用 07/08 17:09
23F:推 shortoneal: 那有点好奇wasm在cloud native的利用如何wasi会起来吗 07/10 23:49
24F:推 jhjhs33504: 已经是W3C标准了跟java applet falsh silverlight不同 07/12 17:06