• .Net与 WebAssembly 随笔


    WebAssembly 是啥

    • - WebAssembly 是一种浏览器支持的字节码格式,WebAssembly 字节码和底层机器码很相似可快速装载运行,因此性能相对于 JS 解释执行大大提升,需要放到 WebAssembly 虚拟机中才能运行, 浏览器厂商需要做的就是根据 WebAssembly 规范实现虚拟机。使用WebAssembly,我们可以在浏览器中运行一些高性能、低级别的编程语言,可用它将大型的C和C++代码库比如游戏、物理引擎甚至是桌面应用程序导入Web平台。
    • - 可以认为, WebAssembly 是传统浏览器插件的妥协结果。覆盖率最广的flash自己作死,因为性能和安全问题被apple拿下,其它的activeX/silverlight/javaApplet/ 又因浏览器或其它限制做不到全平台覆盖。那就用html5吧,但html5+js的性能又不行,那么大家就坐下来商量一个通用二进制插件,WebAssembly就横空出现了。
    • - WebAssembly现在限制还有很多,如不能用线程、无垃圾回收等。和html5一样,WebAssembly标准也会有一个耗时持久的扯皮过程。此外,WebAssembly 还有安全限制,它是运行在浏览器沙箱中的。另外,开发环境/调试等问题涵待慢慢解决。
    • - 现阶段 WebAssembly 适合做些依赖网络的应用(如视频播放、游戏、工具应用),不适合做操作系统相关的、操作硬件、并发线程的、体积庞大的类似的应用。
    • - WebAssembly的前世今生可以参考:https://blog.csdn.net/GarfieldEr007/article/details/68215694

    .Net与 WebAssembly

    (1)https://github.com/aspnet/Blazor  

    •     该项目支持在Web客户端运行.net代码,语法同razor。
    •     与silverlight不同,它不涉及UI部分,所有的UI都由Html标签呈现
    •     Blazor引擎将C#程序编译成WebAssembly,可以用c#代码来操作页面元素
    •     理论上加一个封装器,很容易改造成各种平台的客户端,可以这种方式做到跨平台。

    (2)Unity 3D 可以编译成WebAssembly

      这里有一个很酷的示例,原先Unity在web上是用UnityPlayer或flash插件实现的,现在用WebAssembly

          https://webassembly.github.io/demo

  • 相关阅读:
    vue中form表单监听回车事件
    vue子组件传值父组件,父组件传值子组件
    决策树(统计学习方法(李航))的贷款的例子的实现
    pycharm2019破解
    当vps服务器被墙,如果用xshell连接
    富强民主文明和谐 点击事件变颜色
    java实现字符串翻转
    宝塔面板管理阿里云服务器FTP不能用
    linux学习历程
    计算页码,统计0到9数字出现的次数
  • 原文地址:https://www.cnblogs.com/surfsky/p/9298985.html
Copyright © 2020-2023  润新知