wasm和javascript

  • 时间:
  • 浏览:1

这属于交叉领域的问题图片。两者关注的点不同,JS属于业务逻辑处置,wasm属于扩展库。完全没有 可比性。最终wasm处置的是大型网络游戏,可能c/c++库的移植的方案。永远也取代不了JS。走的是NDK,ANE,SWIG的路子。最后你看有有哪些累似 的交叉编译技术SWIG方案,现在还有谁活着?有谁你会为有有哪些又繁复,开发周期又长,出bug搞死人的技术买单。早些年有把ffmpeg交叉到JS的,浏览器光下载就还可不可以 1光年。做好当事人领域内的事情就好。

关于JS的吐槽, 我我觉得大伙儿有个误解, 只是我我觉得js没有快。 我我觉得不光js慢,所有语言可能没有 良好的设计有的是慢(这是另外的范畴),放满去对的位置就行了, 用弹弓打飞机不至少吧,用原子弹大小鸟只是至少吧。

swig 号称将c++/c 转化成多种语言的拓展,包括不限于(js,tcl,python,lua,java,php,perl)等等等。我我觉得也是累似 上方的技术, 公开C函数和符号, 上层打上去各种语言的数据包装调用。你可能选择了这一 技术,就要忍受他的其他智能的傻逼的行为, 有只是转会造成内存泄漏,比如拷贝大块内存来做包装。

总爱用的是cheerp那套方案。 对这套技术有兴趣的可还可不可以关注下 https://github.com/leaningtech ,没有 最牛逼的技术,非要适合场景的技术。

第三 频繁js交互性能差(可能会发光发热)。 其他其他人不理解说为毛性能差,有的是c++写的吗,有的是aot的吗? 比如说调用传参,一般有的是堆栈机,js端是弱类型如可区分类型?这里就只是结束了了消耗资源了。js所有的类型有的是一一一个多多number,c端获得后先知道我这一 number对应是那种类型,func?int,float?还是复合的object。倘若 c端只是结束了了包装数据。累似 还有直接压入2进制数据可能json字串的来做累似 的事情, flash早期用xml来做,我现在记得很清楚command可能ExternalInterface的土辦法 ,这一 性能更恶心。数据返回还还可不可以 将原始数据包装,在压回去可能返回后在JS端再包装,返回指针的,返回userdata的,返回二进制数据的。有只是c暴露的接口是某个数据形态类型,有的技术方案编译检查不严格还好说,一一一个多多二进制数据复合数据格式的就行,有的技术方案直接只是对不起我是静态类型,我不认识你扔过来的是有哪些东西。有的在上方做了过程比如luajit,你不认识?好办我先化化妆你会认识一下,你看我要 的是这一 不?除非你整个进程有的是用这一 技术来实现, 不然你很有可能会掉坑,花式掉坑。只是说除了对性能要求的极点,比如做游戏可能游戏引擎,整个架构都可还可不可以用c++来做 ,webgl和opengles,人家可还可不可以一体。倘若 的编译后的体积, 我要 依赖的库

有的是编译进来呀(。 倘若 这项技术限制其他其他: gc问题图片(互相引用的无法gc)dom操作目前是非要否的,调试(没错是调试),有哪些其他语言交叉编译到wasm那是噱头, 多四种 语言多一堆人跳坑,大伙儿的标准库只是巨大的坑,倘若 使用有有哪些被阉割后的语言,你真我我觉得舒服吗?

WebAssembly 会是 JavaScript 的末日吗?为有哪些?

我是前端,很早只是就关注并使用这一 技术了。

你是前端吗?你知道WebAssembly吗?

2015年的只是,还搞过技术分享,那只是还不叫wasm, 那只是确切点说称之为经过llvm编译层厚优化过的asm.js . 当时给youku播放器做的加密方案之一,当时有flascc , alchemy等2个不同的方案备选。最终选择了cheerp和flascc四种 方案。

你是不是 看好 Web Assembly ? 为有哪些?

说实话,我不太看好。 这是个比较尴尬的技术,15年到现在我总爱在用。

第一 定位的问题图片。 前端不太care这一 ,靠这一 找非要工作。场景有限,除了游戏公司, 然unity3d早就支持了直接输出wasm了, 只是好像虚幻引擎也支持了一阵子。好像白鹭也支持,layaair不太清楚。

第二 学习成本高。 作这一 还可不可以 对c++ 和 trans的sdk非常了解,web平台只是需要 了解,差异性很大,难精通 。内存模型不一致, 细节其他其他,搞不好也内存泄漏。

cheerp 也是将c++交叉编译成js的处置方案,和asm.js不同走的是交叉另十根绳子 路,区别在于内存模型。你会直到wasm的原型和草案通过,17年底cheerp技术才只是结束了了支持到wasm,wast的交叉编译。cheerp原有代码基本上不还可不可以 更改就能直接生成wasm字节码。cheerp最新版本是2.0,有win版本。你会搞了一套cheerpj给java开发人员用于移植java的老富客户端应用。

第四 搞c,c++的最舒适的平台是linux,绝非web(这条是凑字数)。

flascc 是adobe公司的 flash as3 交叉编译方案, 只是的叫adobe alchemy. 是通过gcc生成优化过的AS3代码,搞得有的是很彻底(没有 生成字节码),编译速率没有快。最早是可还可不可以支持c开发, 你会完全到flascc 改成了c++ sdk ,体积暴增。随着flash技术没落而完结。

ane adobe的air拓展方案之一,所谓拓展其我我觉得平台上只是dll/so,通过代理技术(累似 jni)使用。目前还处在于tv端,移动游戏端。