云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

全站加速_sql数据库导入excel_排行榜

小七 141 0

Cloudflare Workers上的WebAssembly

我们刚刚在加密周和生日周发布了十大新产品和新举措,但我们的工作还没有完成。我们正在不断地用新功能升级现有产品。今天,我们正在扩展Cloudflare Workers,以支持WebAssembly。所有Workers客户现在可以使用WASM扩展其应用程序,而不需要额外的成本。什么是WebAssembly?WebasBulm——通常缩写为"WASM"——是一种扩展Web平台以支持C、C++、RISE、GO等多个编译语言的技术。这些语言可以被编译成特殊的WASM二进制格式,然后加载到浏览器中。WASM代码是安全的沙盒,就像JavaScript一样。但是,由于它是基于编译的低级语言,因此对于某些资源密集型任务(JavaScript并不适合这种任务),它可以更快地运行。除了性能优势外,WASM还允许重用用JavaScript以外的语言编写的现有代码。什么是工人?对于那些不知道的人:Cloudflare Workers允许您将"无服务器"JavaScript代码直接部署到我们153个不断增长的数据中心。您的工作人员直接在离最终用户最近的位置处理站点的HTTP流量,从而降低延迟并降低服务成本。上周,我们为Workers添加了存储,使构建完全在Cloudflare上运行的应用程序成为可能。到目前为止,Workers只支持JavaScript。通过添加WebAssembly,您现在可以使用多种语言,并且可以做得更多、更快。一如既往,当您在Cloudflare上部署代码时,它将在不到30秒的时间内分发到我们全球的每个位置。何时使用WebAssembly需要注意的是,WASM并不总是适合这项工作的工具。对于轻量级任务,如将请求重定向到不同的URL或检查授权令牌,使用纯JavaScript可能比WASM更快、更容易。WASM程序在它们自己独立的内存空间中运行,这意味着必须在该空间中复制数据才能对其进行操作。大部分与外部对象交互而不进行任何认真的"数字运算"的代码可能不会从WASM中获益。另一方面,当您需要执行一个需要大量资源的、自包含的操作(如调整图像大小或处理音频流)时,WASM确实非常出色。这些操作需要大量的数学运算和仔细的内存管理。虽然可以用纯JavaScript执行这类任务,而且V8这样的引擎在优化此类代码方面做了大量的工作,但最终没有什么能比具有静态类型和显式分配的编译语言更好。例如,下面的图像由Cloudflare Worker使用WebAssembly模块对图像进行解码和调整大小来动态调整大小。只有原始图像被缓存-当你移动滑块时,我们的边缘会动态调整大小。在这里找到密码。如何将WebAssembly与Cloudflare Workers一起使用在Worker中使用的WASM必须与Worker一起部署。在online Workers编辑器中编辑脚本时,单击"资源"选项卡。在这里,您可以添加一个WebAssembly模块。系统将提示您上载WASM模块文件并为其分配一个全局变量名。上传后,模块将显示为类型为的全局变量WebAssembly.模块在你的工作脚本中。然后可以这样实例化它://定义WASM可以调用的导入函数。constimports={exampleImport(a,b){returna+b;}}//实例化模块。const instance=新建WebAssembly.Instance(我的模块,进口)//现在可以调用WASM导出的函数。instance.exports.exampleExport(123人);有关实例化WebAssembly模块的更多详细信息,请参阅mdnwebassembly API文档。当然,您也可以通过我们的API而不是在线编辑器上传WebAssembly模块。查看文档了解详细信息»构建WASM模块今天,为Cloudflare构建WebAssembly模块是一个涉及低级工具的手动过程。查看我们的演示库了解详细信息。现在基本支持已经就绪,我们计划与Emscripten和WASM社区的其他成员合作,确保为Cloudflare Workers构建WASM与构建web浏览器一样无缝。请继续关注进一步的发展。未来我们对WebAssembly打开的可能性感到兴奋。也许,通过与CuldFlash频谱集成,我们可以允许现有的C/C++服务器代码处理边缘上的任意TCP和UDP协议,就像一种大规模分布的IETD。也许游戏服务器可以通过运行Cloudflare来减少延迟,尽可能靠近玩家。也许,在一些gpu和OpenGL绑定的帮助下,您可以直接从边缘进行3D渲染和实时流式处理。告诉我们你想看什么想帮我们建吗?我们在招聘!