在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
看图即可见原理。mono.wasm用来构造了一个dotnet解释器。 在blazor被微软收购之前是用的dotnetanywhere,现在换成了mono 然后,直接加载那些dll,执行正经的IL代码。 这个方案,稳健,除了加载容量吓死人 这个helloworld,肉眼可见的压缩后容量超过100K的文件就4个。 开发工具 visual studio 2019 开发语言 IL家族 火狐家的rustwasm非常干净,代码直接被编译为wasm执行,没有依赖环境 这个helloworld,wasm 压缩后47k,胶水代码4k 开发工具,命令行工具链rust家族,IDE漂泊不定,vscode可以用 开发语言 rust 来互相伤害一下先拉个表格
我对比了四个维度 工作原理blazor是直接把mono解释器变成了wasm,用户不需要再接触wasm。这个方案有很高的一致性,兼容性极好。用户不需要了解太多wasm,dotnet开发者即可上手。相当于用wasm写了一个脚本语言,然后用户写脚本。 而rust是直接把用户代码编译为wasm。 这是两个截然不同的方案,微软方案存在二次解析和GC,性能会有一定折扣。 容量blazor的容量惊人,仅解释器和dotnet基础库压缩后就达到了1.5M,不压缩4M多。 仅此一条,将极大的限制blazor的使用场景。 rust在这个项目上碾压胜出 开发语言c# 作为一门已经有很广泛用户基础的语言,其资料丰富程度是无法抵挡的,外加庞大的c#开发者。 而rust 则是一门致力于为难程序员的语言。 rust是c++的挑战者,他更加底层,尤其是在内存相关的设计上极为复杂。 c#有gc,代码编写比较容易。 对程序员友好度来说,自然是c#更优,但项目?何时轮到程序员的感受了。 rust没有gc,代码就小,也没有gc代价,转换成项目语言就是,rust代码比c#代码快,尤其在wasm环境,微软选了解释器,那就会更快(按照lua的效率预测,lua解释器性能大约是c语言同等逻辑的1/22,这个仅作参考) 开发工具微软visual studio 2019,目前坊间称为宇宙最强IDE,绝非浪得虚名。 而rust 和 wasm-pack 只有命令行工具 rust IDE,目前体验比较好的,依然是微软家的visual studio code n 100分 对 60分的差距 调试 微软碾压胜,可以在c#直接下断点,调试wasm环境的代码。 火狐的rust这边,还要靠打log,下断点的方法暂时还没有,希望rust生态的蓬勃发能尽快弥补这个短板。 wasm是支持sourcemap的,目前 wasm-pack工具包居然没有直接生成sourcemap,所以没办法在浏览器环境直接看到rust代码,短板啊。 小结微软太异端,巨大的依赖容量无法实用化。 rust 还是目前wasm开发的首要选择 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论