这样的想法可行不?

2019-08-23 13:17:35 +08:00
 VDimos

webassembly 的性能现在已经很突出了,按照目前的发展趋势,wasm 的性能会逐渐逼近原生。

如果用 web canvas 做绘图层,用 wasm 做计算。在 wasm 返回给 web 的 buffer 里只有像素信息,它已经做好了布局之类的。

这样 canvas 只做绘图,而把计算交给了 wasm。或者说大部分情况下都是用的 canvas,相当于 canvas 成了最基本的组件。

如果 canvas 再使用 webgl 来绘图,性能会不会更好一点儿?

这样是不是更容易实现跨平台?

但我不确定,这样的话性能会如何?各位有没有这方面的研究?一起探讨下

4797 次点击
所在节点    程序员
29 条回复
kamilic
2019-08-23 13:25:08 +08:00
flutter?
VDimos
2019-08-23 13:29:42 +08:00
@kamilic flutter 原理不了解,不是直接编译两套代码吗?用 wasm 的话可以忽略掉平台差异
userdhf
2019-08-23 13:31:45 +08:00
想法挺好,是不是以后网页直接贴张设计稿上去,监听点击位置就好了...
nicoljiang
2019-08-23 13:31:49 +08:00
感兴趣,静候大佬作答。
love
2019-08-23 13:54:09 +08:00
然后不断加功能,再实现一遍 DOM
VDimos
2019-08-23 13:58:47 +08:00
@love 没必要实现 dom 那么复杂的标准,如果只实现基本的功能呢?我记得国外是有全部用 canvas 实现的应用?
murmur
2019-08-23 14:00:07 +08:00
可以,没必要,以前 react 就有 canvas 实现的版本,后面还是用了 react native
tabris17
2019-08-23 14:03:05 +08:00
即便 canvas 渲染能力出众,wasm 性能贴近原生,但是真的能保证用 canvas 实现一套 ui 组件的性能可以接近原生 html 吗?
augustheart
2019-08-23 14:11:35 +08:00
估摸了一下,可能要分你最终做的是什么东西吧。不过性能更好这个基本上不可能。
这东西就好比客户端的 duilib,会省去一些系统组件间的交互,某些方面可能会快一点,但是要综合起来谈性能更好,同样的渲染条件下没可能。
Cooky
2019-08-23 14:17:30 +08:00
qt webgl 那个?
momocraft
2019-08-23 14:20:05 +08:00
字体,排版,样式,每一个都是无底深坑
loginbygoogle
2019-08-23 14:48:40 +08:00
不说性能问题,就一个简单的输入框控件就够你折腾
VDimos
2019-08-23 16:04:31 +08:00
@loginbygoogle 主要就是性能允许与否
VDimos
2019-08-23 16:05:06 +08:00
@momocraft 那如果光探讨可行性,可行吗?
gchxp
2019-08-23 16:08:20 +08:00
重复造了一个 js 游戏引擎?
momocraft
2019-08-23 16:23:38 +08:00
@VDimos 做来玩随便,有期待不可行
random0O
2019-08-23 16:35:05 +08:00
accessibility 也是个问题
VDimos
2019-08-23 16:49:33 +08:00
@gchxp 有点儿类似,但和游戏引擎的侧重点不太一样
sujin190
2019-08-23 17:12:14 +08:00
没多大用吧,用户层缓冲帧率上不去,不直接用 canvas 绘图,你显卡不是毛用没有了
绘图渲染还是要用 canvas 直接完成,排版倒是可以用 wasm,感觉也比不了浏览器直接的体验更好吧
MMMMMMMMMMMMMMMM
2019-08-23 17:13:02 +08:00
可以,但是应用场景不会多

因为现有的 web 无论是常规 site 还是 pwa,大部分瓶颈都不在性能上

游戏可能用的上,但是人家游戏引擎就是专门做这个的,unity,ureal 貌似现在都能直接发布到 Webassembly 了

强行 port 过去,重写一遍现有业务,npm 替代品没有的轮子再造一遍,你看大公司们乐意不

个人自己玩玩倒蛮有意思的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/594472

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX