500万彩票网电脑版-一分钟开奖大小

日期:2019-08-13 20:29:56   来源:捕鱼棋牌电玩城   编辑:小狐   阅读人数:928

荷畔微风 - 在函数计算FunctionCompute中使用WebAssembly(图1)

WebAssembly 是一种新的W3C规范,无需插件可以在所有现代浏览器中实现近乎原生代码的性能。同时由于 WebAssembly 运行在轻量级的沙箱虚拟机上,在安全、可移植性上比原生进程更加具备优势。同时资源消耗小、启动速度快的特点也非常适合Serverless的场景。者们开始探索WebAssembly在Serverless的应用场景。

WebAssembly (WASM) 是一种可以在Web浏览器上运行的编译语言(如C/C++, Rust, Go)的技术方案。WebAssembly采用二进制字节码格式,运行在基于堆栈的虚拟机上。2017年2月28日,四大主流浏览器Chrome, Firefox, Safari和IE共同宣布 WebAssembly 的最小可行产品(MVP)已经完成。

荷畔微风 - 在函数计算FunctionCompute中使用WebAssembly(图2)

相比Java, 使用WebAssembly可以更高效地在Web浏览器中运行代码逻辑。

解析更快:由于WebAssembly采用二进制的中间表示(Intermediate Representation)可以类比JVM的byte code。无需代码解析过程,可以实现毫秒级解码加载。

执行更快:由于 Java 使用动态类型,编译器很难对代码实现深度优化;而WebAssembly采用静态类型,编译器可以高效优化;同时Java采用垃圾回收机制,而WebAssembly指令更接近机器码,需要程序自己控制垃圾回收策略,相比自动垃圾回收效率可以更高。通常而言,WASM与Java相比,可以实现30%性能提升,在复杂的计算逻辑中,会有更高的性能提升。同时由于减少了语言的动态性和采用静态内存处理,WebAssembly也更加适合要求可预测性能的计算场景。

WebAssembly作为社区标准,具有良好的可移植性。WebAssembly代码逻辑可以一致地运行在不同浏览器实现中,并与Java或浏览器对象进行交互调用。WebAssembly也可以运行在非浏览器环境下。此外WebAssembly运行在一个沙箱化的执行环境中,严格遵守浏览器安全策略,具有良好的安全性。

函数计算 + WebAssembly 模块

Function as a Service(FaaS)是Serverless Computing的重要计算形态,它了事件驱动的编程模型,者只需编写和上传事件响应代码,而平台则会负责计算资源的弹性伸缩。

FaaS主要支持了 Node.js, Python, PHP等解释型语言,也支持Java, C等编译型语言。由于在Node.js 8.0版本以后已经内置了WebAssembly运行时,在主流的FaaS环境可以通过Node.js实现调用WebAssembly模块的能力,比如在AWS Lambda和Cloudflare Worker。

在FaaS中利用Node.js调用WebAssembly 模块,有以下优点

更好的性能 - 尤其是计算密集型任务

可移植性 - 为NPM编译原生代码是一个大坑,在FaaS中运行的原生代码则需要针对目标执行环境进行构建来保障兼容性。比如AWS Lambda中的原生代码需要依赖Amazon Linux构建;阿里云函数计算要求二进制代码基于Linux 4.4构建。而WebAssembly代码可以保证在不同的目标环境运行有一致的结果。

多语言支持 - 类似C/C++, Rust, Golang这样的已有业务代码可以通过编译成WebAssembly进行复用,比如可以直接将C编写的图像处理应用运行在函数计算中,而不受函数计算支持的现有运行时的限制。

我们也将做一个小实验,结合Rust和Assembly两种语言在阿里云函数计算(FunctionCompute, FC)场景中体验WebAssembly。

环境准备

安装并配置阿里云函数计算的 Serverless 应用部署的工具 Fun

可选 Rust环境需要安装 wasm-pack

利用Rust构建Serverless WebAssembly应用

Rust是Mozilla的一个新的级编程语言。Mozilla同时也是WebAssembly技术最重要的推动者,它基于WebAssembly发布了wasm-bindgen,目的提升 Java 和 Rust 之间的互操作性,可以让 Rust代码能够与Java一起使用。

荷畔微风 - 在函数计算FunctionCompute中使用WebAssembly(图3)

本节参考了Scott Logic的文章,我们将利用wasm-bindgen,在FunctionCompute的Node.js运行时中运行基于Rust编译的WebAssembly代码。

荷畔微风 - 在函数计算FunctionCompute中使用WebAssembly(图4)

部署并

荷畔微风 - 在函数计算FunctionCompute中使用WebAssembly(图5)

利用Assembly构建Serverless WebAssembly应用

Assembly可以将一个 Type 严格的子集编译成 WebAssembly。Assembly 使用与 Type 相同的语法,但使用了自己的标准库来支撑 WebAssembly 的功能,这意味着者不必为了编写 WebAssembly 而去学习新的编程语言,这是一个巨大的优点。而且Assembly是针对WebAssembly设计的语言,它可以生成更加简练的WebAssembly代码,并更加简单地与Java集成交互。

荷畔微风 - 在函数计算FunctionCompute中使用WebAssembly(图6)

荷畔微风 - 在函数计算FunctionCompute中使用WebAssembly(图7)

部署并

荷畔微风 - 在函数计算FunctionCompute中使用WebAssembly(图8)

展望未来

WebAssembly还是一个非常年轻的技术,大量的功能有待完善,但是它已经展现出巨大的潜力,逐渐在非Web领域得到应用,如区块链的智能合约实现。Mozilla在19年3月推出了一个标准化的 WebAssembly System Interface(WebAssembly接口,简称 WASI)来定义WASM与资源的交互,比如文件访问,内存,网络连接等。软件商可以针对具体的操作和运行环境不同的接口实现。它的目标是在不同设备和操作上运行相同的 WebAssembly 代码,这与Java 提出的 “build once run anywhere” 目标有些类似,但是WebAssembly + WASI完全基于开放生态,并更好的可移植性和安全性。

未来随着WebAssembly自身技术和工具链的成熟,WebAssembly将有机会成为一个跨语言、跨平台的Serverless runtime,进一步推动云原生应用的进化。社区也开始在相关领域进行探索,比如Fastly公司为其边缘计算平台推出 Lucet 项目,它针对Serverless场景了优化的WebAssembly编译器和运行时,可以将实例化 WebAssembly 模块的时间降低到数十微妙,内存开销降低到只需几KB。

----------------------------------

本文相关词条概念解析:

代码

代码就是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。代码设计的原则包括惟一确定性、标准化和通用性、可扩充性与稳定性、便于识别与记忆、力求短小与格式统一以及容易修改等。源代码是代码的分支,某种意义上来说,源代码相当于代码。在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,它由通过编译器完成。

网友评论
文风入迷
m文件,测试函数如下
2019-08-22 08:25 91
eifeiyu
最强查找引用INDEX+MATCH实用技巧解读方法
2019-08-24 03:30 490
你是在搞笑
最强查找引用INDEX+MATCH实用技巧解读方法
2019-08-23 20:38 58
小鱼_58
比VLOOKUP函数好用10倍的函数Index+match函数怎么用?
2019-08-15 21:44 140
核桃里音乐
INDEX+MATCH法
2019-08-18 17:32 544
我是DV搬运
最强查找引用INDEX+MATCH实用技巧解读方法
2019-08-21 21:02 173
包包大人05
如何使用Python调用MATLAB函数?
2019-08-23 21:51 606
千江有水千
单条件反向查询,VLOOKUP函数法
2019-08-24 13:40 807
jpy355
INDEX+MATCH法
2019-08-24 13:50 712
daw_51
安装成功后,我们就可以进行测试了,还是以上面的test函数为例,主要代码如下
2019-08-22 03:46 89
会哼哼的小
最强查找引用INDEX+MATCH实用技巧解读方法
2019-08-25 07:31 864
gooyore
最强查找引用INDEX+MATCH实用技巧解读方法
2019-08-24 19:00 504
郭大小姐的
VLOOKUP函数怎么用?
2019-08-25 07:17 716
龙城一叶孤
程序运行结果如下,已经成功运行matlab函数,并返回结果
2019-08-20 23:15 690
相关阅读
亚洲最强三叉戟已经成型! 武磊+高拉特+埃神进世界杯有戏了!

亚洲最强三叉戟已经成型! 武磊+高拉特+埃神进世界杯有戏了!

40强赛集训名单公布后,埃尔克森已经正式进入国足!他也是首个

最多领先21分, 男篮劲敌惜败NBA豪阵! 绝技投懵对手, 中国队小心了

最多领先21分, 男篮劲敌惜败NBA豪阵! 绝技投懵对手, 中国队小心了

北京时间8月24日,2019国际男篮冠军赛继续进行。在刚刚结

12星座男“超怕失去你”, 才有的霸气表现? 傻丫头你真的知道吗

12星座男“超怕失去你”, 才有的霸气表现? 傻丫头你真的知道吗

一段感情,一旦一个人真的爱上了,就会很害怕失去。可能平时很温

女性一生中不可或缺的八款口红, 你有几款?

女性一生中不可或缺的八款口红, 你有几款?

雅诗兰黛333,最美的干枫叶色,没有之一!这是一款枫叶红色的

喜欢自拍?这四款千元机值得入手,都是3200万前置,低至999

喜欢自拍?这四款千元机值得入手,都是3200万前置,低至999

不同的人买手机的需求是不一样的,有些用户注重性能,一般都是爱

手机到底多久关机一次好, 是一天一次还是长期不关? 冷知识要懂!

手机到底多久关机一次好, 是一天一次还是长期不关? 冷知识要懂!

在现在的社会中,对我们影响最大的就是捕鱼棋牌电玩城,因为捕鱼棋牌电玩城的产生

霸气!郑智谈亚冠战鹿岛信心十足:恒大做好2点赢球没问题

霸气!郑智谈亚冠战鹿岛信心十足:恒大做好2点赢球没问题

下周中(8月28日)亚冠1/4决赛首回合交锋就要打响,恒大将

好利来分家:多地门店改名 创始人罗红与江一燕关系闹得沸沸扬扬

好利来分家:多地门店改名 创始人罗红与江一燕关系闹得沸沸扬扬

雷帝网 乐天 8月24日报道好利来董事长兼罗红日前发布公告,

取消流量不限量后, 联通再出4G套餐新规, 用户大呼伤不起

取消流量不限量后, 联通再出4G套餐新规, 用户大呼伤不起

在三大商中,中国联通是发展最慢的一个,在2016年的时候,中

杨坤曾是《好声音》导师, 如今沦落到三线小咖, 只因说错一句话

杨坤曾是《好声音》导师, 如今沦落到三线小咖, 只因说错一句话

说起杨坤想必大家都不陌生,在娱乐圈也是非常知名的歌手,凭借着