利用Golang的图像处理及本地Web应用文献综述

 2022-08-19 09:08

一、文献综述

(一)国内外研究现状

WebAssembly的出现是为了解决JS的一些问题,JS的一些问题:语法灵活导致大型Web项目开发困难、性能问题。为了解决JS的这些问题,微软的TypeScript通过给JS加入静态类型检查的方式来增强代码健壮性来提高开发效率,虽然解决了语法松散的问题,但是最后还是编译为JS,所以性能问题依然存在。谷歌的Dart通过给浏览器引入新的虚拟机来运行Dart程序来提高性能,不过大部分浏览器不一定支持,而且现在JS已经很流行,从事Dart开发的人不多。火狐通过asm.js一种被针对性性能优化的JS代码来实现,但是其语法存在诸多限制,开发效率并不高。这些浏览器巨头提出的解决方案有不一样,需要一种统一的方案,由此有了WebAssembly,一种新的字节码格式,和JS不同,wasm字节码和底层机器代码很相似,可以被快速执行,这比JS解释执行的效率高,应为是字节码所以wasm体积也更小。

而要获得wasm字节码文件,可以使用其他高级语言来编写然后编译为wasm,例如AssemblyScript,其语法和 TypeScript 一致,对前端来说学习成本低,为前端编写 WebAssembly 最佳选择。还有C/C ,官方推荐,毕竟C/C 编写出来的程序效率是可以肯定的。还有Rust、Kotlin、Go等。

2017年8月3日,W3C正式启动了 WebAssembly(简称wasm)工作组。wasm是一个虚拟指令集体系架构(virtual ISA),整体架构包括核心的ISA定义、二进制编码、程序语义的定义与执行,以及面向不同的嵌入环境(如Web)的应用编程接口(WebAssembly API)。其初始目标是为C/C 等语言编写的程序经过编译,在确保安全和接近原生应用的运行速度更好地在Web平台上运行。

2018年2月15日,W3C 的 WebAssembly 工作组发布了三份标准的首个公开工作草案(First Public Working Draft)。这三份标准是WebAssembly核心规范、WebAssembly JavaScrip 接口、WebAssembly Web API。在2019年7月18日,工作组发布这关于这三份标准的推荐标准并向外界征集参考实现。

2019年12月5日,WebAssembly正式发布了这三项标准,意味着wasm正式成为了一项Web新标准。其中WebAssembly核心规范定义了一个低级虚拟机,模拟运行该虚拟机的许多微处理器的功能。 通过即时编译或解析,WebAssembly 引擎使编写的代码可以以接近本地平台的速度运行。.wasm 资源类似于 Java .class 文件,它包含静态数据和对该静态数据进行操作的代码段。 与 Java 不同,WebAssembly 为其他编程语言(如C/C 和 Rust)提供了一个高效的编译目标以便它们能够在网络上运行。WebAssembly JavaScrip 接口用于调用并将参数传递给 WebAssembly 函数。 在 Web 浏览器中,WebAssembly 与主机环境的交互都通过 JavaScript 进行管理,这意味着 WebAssembly 依托 JavaScript 高度精心设计的安全模型。WebAssembly Web API定义了一个基于 Promise 的接口,用于请求和执行 .wasm 资源。 .wasm 资源的结构经过优化,允许在检索整个资源之前开始执行,这进一步增强了 WebAssembly 应用程序的响应能力。

WebAssembly 是为高效执行和紧凑表示而设计的运行在现代处理器(包括浏览器)中的一种快速、安全、可移植的低级代码格式。该技术使 Web 平台能够更有效地执行计算密集型算法,这使全新的用户体验类别变得切实可行。 由于 WebAssenbly 是与平台无关的执行环境,因此它也可以用于任何其他计算机平台。而它的应用场景正是在网页游戏、视频与音频的编解码器(Codecs)、定制化的数据压缩、3D模型、媒体编辑工具这些需要更快的运行速度的程序。

大公司也在使用wasm这项新技术,例如eBay在真实环境中使用wasm技术,在电子商务崭露头角。再例如谷歌地球,使用wasm技术成功将谷歌地球移植到了网页上,我们通过本地浏览器就能一览地球的风光。wasm正在不断提升浏览器的性能,为更多的奇思妙想创造可能。

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。