精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

什么是WebAssembly?

譯文 精選
開發 前端
本文針對一種小型且快速的二進制編程語言—WebAssembly,先后介紹了其工作原理、實際用例、以及正在完善的各項功能。

?譯者 | 陳峻

審校 | 孫淑娟

二十多年來,有一種編程語言一直在Web瀏覽器中以原生的方式被使用至今。這便是JavaScript。期間,我們見證了諸如Java和Flash的ActionScript等第三方二進制插件,從興起到逐漸消亡。而作為另一類Web語言的CoffeeScript,最終仍然會被編譯成JavaScript。可見,只有JavaScript才是Web開發界的王者,并骨灰級地被沿用著。

不過,我們現在有了一種新的可選項:WebAssembly(簡稱為Wasm)。作為一種小型且快速的二進制格式編程語言,它可以為Web應用提供接近原生的性能。此外,WebAssembly旨在成為任何語言的編譯目標,而JavaScript只是目標中的一種。也就是說,鑒于每一種主流瀏覽器都能支持WebAssembly,我們有必要開始認真地考慮,如何編寫出各種可以被編譯為WebAssembly的客戶端應用。

值得注意的是,WebAssembly應用程序并不打算(至少目前并沒有)取代JavaScript應用程序。相反,鑒于JavaScript具有靈活、動態類型、以及源代碼可讀等交付特性,WebAssembly旨在提供高速、強類型,以及緊湊二進制式的交付特性。因此,WebAssembly可以被視為JavaScript的輔助“伙伴”。

在實際中,開發人員可以考慮將WebAssembly運用到諸如:游戲、音樂流、視頻編輯、以及CAD應用等性能敏感型的用例中。目前,許多Web服務已經開始采用WebAssembly了。例如,為了縮短加載的時間與執行的速度,谷歌地球和協作式繪圖與圖表應用Figma,都采用了較新的WebAssembly。

1.WebAssemzbly的工作原理 

由W3C開發的WebAssembly,用其創建者的話來說是一個“編譯的目標”。開發人員不必直接編寫WebAssembly。他們可以選用自己熟悉的語言編寫代碼,然后編譯成WebAssembly類型的字節碼。字節碼通常運行在客戶端的Web瀏覽器中,并被翻譯成可被高速執行的原生機器代碼。

WebAssembly代碼旨在實現比JavaScript更快的加載、解析和執行。當使用WebAssembly時,Web瀏覽器仍然存在下載Wasm模塊,以及予以設置的開銷。雖然對于較大的Wasm項目而言,此類模塊會因為在運行過程中產生了幾兆字節,而出現延遲。但是在其他同等條件的中小型項目中,WebAssembly會運行得更快一些。

同時,WebAssembly也提供了一個沙盒執行模型,該模型與JavaScript的現有安全模型非常相似。也就是說,Wasm應用程序無法直接訪問到沙箱之外的任何內容,甚至是它們正在運行的網頁上的DOM。因此,如果應用程序需要與系統中的其他部分進行交互,就必須使用類似WebAssembly系統接口(WASI,https://wasi.dev/)的各種ABI(應用程序二進制接口)。WASI為程序提供了常被用于文件、網絡、系統時鐘、以及其他系統服務的受控式訪問。

目前,雖然在Web瀏覽器中運行WebAssembly,是其最常見的一種使用場景,但是WebAssembly遠不僅僅是基于Web的解決方案。例如:Wasmer項目就可以在服務器端運行WebAssembly應用程序。這與Node.js運行時(runtime)在瀏覽器之外運行JavaScript的方式非常類似。

2.用例 

WebAssembly的最基本用例就是被開發者用來編寫瀏覽器內的軟件。我們可以用各種語言來編寫出可以被編譯成WebAssembly的組件,然后通過JavaScript,將WebAssembly的最終、有效負載傳遞給客戶端。

如前文所述,WebAssembly在設計時就考慮到了各種性能密集型、基于瀏覽器的用例。其中包括:游戲、音樂流、視頻編輯、CAD、加密、以及圖像識別等等。總的說來,WebAssembly用例通常適合如下三個領域:

  • 已存在于目標語言中的高性能代碼。例如,如果你有一個已用C語言編寫的高效數學函數,并且需要將它合并到某個Web應用程序中,那么,你就可以將它部署為一個WebAssembly模塊。同時,您可將該應用中,那些對于性能不太敏感的、面向用戶的部分,保留為JavaScript。
  • JavaScript代碼不夠理想,需要從頭開始編寫的高性能代碼。過去,開發人員會使用asm.js(http://asmjs.org/)來改寫此類代碼。如今,您可以通過WebAssembly來實現該目的。
  • 將桌面應用移植到Web環境中。雖然asm.js和WebAssembly都可以在技術上實現此類需求,但是WebAssembly可以提供比使用HTML呈現GUI更為基礎的應用。對此,您可以查看WebDSP和瀏覽器中的Windows 2000這兩個示例,來進一步了解其功效。

總之,WebAssembly開發往往能夠達到比現有JavaScript應用程序更快的運行效果。

3.WebAssembly的語言支持 

顧名思義,WebAssembly不可被直接編寫,它更像是一種匯編語言,一種供機器使用、而非高級的、用戶友好的編程語言。與C或Java相比,WebAssembly更接近由LLVM語言編譯器的基礎結構所生成的中間代碼表示(intermediate representation,IR)。

通常,大多數使用WebAssembly的場景都會涉及到使用如下三種基本方式中的一種,把那些由高級語言編寫的代碼,轉換為WebAssembly:

  • 直接編譯。通過本語言自帶的編譯器工具鏈,源代碼可以被直接翻譯成WebAssembly。例如:Rust、C/C++、Kotlin/Native、以及D都可以通過原生方式,從支持此類語言的編譯器處,直接編譯出Wasm。
  • 第三方工具。Java、Lua和.Net等語言雖然并不提供原生的、支持Wasm的工具鏈,但它們可以使用第三方實用程序,將代碼轉換為Wasm。
  • 基于WebAssembly的解釋器。它并非是將現有語言的代碼翻譯成WebAssembly,而是用由WebAssembly編寫的語言解釋器,去運行代碼。由于解釋器本身就占有幾兆字節的代碼空間,因此,該方法較為臃腫。當然,它保留了那些原有語言編寫的代碼,在無需轉換的情況下,被運行起來。例如,Python(往往是通過PyScript)和Ruby都擁有翻譯成Wasm的解釋器。

4.WebAssembly即將推出的功能 

不可否認,WebAssembly仍處于早期階段。其工具鏈和實現,更接近于概念性的驗證(proof-of-concept)。目前,WebAssembly正努力通過如下方面的舉措,讓其更加實用:

垃圾回收的原語(Primitives)

WebAssembly目前并不直接支持那些使用垃圾回收內存模型(garbage-collected memory model)的語言。我們只能通過限制功能集,或將整個運行時(runtime)嵌入WebAssembly的可執行文件,以支持Lua或Python等語言。當然,WebAssembly正在緊鑼密鼓地研發其支持垃圾回收內存模型的功能。

線程(Threading)

對線程的原生支持,在Rust和C++等語言中十分常見。而WebAssembly缺乏對于線程的支持,就意味著那些以WebAssembly為最終目標的應用代碼的整個類,我們都不能使用Rust和C++等語言來編寫。目前,已有人提出使用C++線程模型,向WebAssembly添加線程。

大容量內存操作和SIMD

大容量內存操作和SIMD(單指令與多數據,single instruction, multiple data)的并行性,對于需要處理大量數據、并需要通過原生CPU加速,來防止阻塞的應用程序(如機器學習或數據科學應用)而言,是必不可少的。目前,WebAssembly正努力添加此類功能。

高級語言結構

同時,WebAssembly正在對標高級語言結構,并不斷完善如下功能:

  • 異常(Exceptions)可以在WebAssembly中被模擬,但是不能通過WebAssembly的指令集被原生地實現。目前,WebAssembly正計劃創建與C++異常模型相兼容的異常原語,以便被編譯為WebAssembly的那些語言代碼所使用。
  • 參考類型(Reference types)可以輕松地向主機環境傳遞被用作參考的對象。它能夠使得垃圾回收和其他高級功能,更容易地在WebAssembly中實現。
  • 尾調用(Tail calls)是一種在多種語言中被用到的設計模式。
  • 能返回多個值的函數,如Python或C#中的元組(tuples,或稱數組)。
  • 符號擴展運算符(Sign-extension operators),一種實用的低級數學運算。LLVM能夠支持它。

調試和分析工具

如您所知,被轉譯的JavaScript存在著一個巨大問題:由于無法在轉譯代碼和源代碼之間建立關聯,因此我們難以進行調試和分析。目前,WebAssembly正努力通過源地圖支持的方式,來解決此類問題。

原文鏈接:https://dzone.com/articles/what-is-webassembly

譯者介紹

陳峻 (Julian Chen),51CTO社區編輯,具有十多年的IT項目實施經驗,善于對內外部資源與風險實施管控,專注傳播網絡與信息安全知識與經驗;持續以博文、專題和譯文等形式,分享前沿技術與新知;經常以線上、線下等方式,開展信息安全類培訓與授課。?

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2023-06-13 23:21:35

2017-03-23 14:37:19

WebAssemblyasm.js編程

2023-02-26 00:17:45

2023-05-05 17:20:04

2017-03-19 22:13:10

WebAssemblyJavaScript編程

2023-01-31 09:02:24

JSVMVR

2021-03-20 22:46:22

IaaSSaaSPaaS

2022-06-02 08:01:11

云原生工具

2022-10-28 16:57:18

DockerWasm

2023-12-10 16:48:00

Wasm瀏覽器

2023-09-01 13:49:00

內存進程線程

2020-07-14 14:59:00

控制反轉依賴注入容器

2025-09-26 02:15:00

JavaScript解釋器Java

2017-03-19 22:43:12

WebAssemblyJavaScript編程

2017-03-19 20:41:57

WebAssemblyJavaScript編程

2022-05-28 12:33:17

谷歌項目經理領導者

2017-12-19 21:29:58

物聯網區塊鏈大數據

2020-11-20 10:51:03

云計算

2021-06-11 09:00:00

語言WebWebAssembly

2023-03-27 13:25:18

WebAssembl語言Scheme
點贊
收藏

51CTO技術棧公眾號

国产成人精品在线播放| 国产一区二区三区毛片| 国产二区视频在线| 欧美亚洲日本| 国产在线播放一区二区三区| 欧美极度另类性三渗透| 国产麻豆天美果冻无码视频 | 国产三级日本三级在线播放| 香蕉视频在线播放| a级精品国产片在线观看| 国产精品国语对白| 久久久久亚洲天堂| 波多野结衣在线观看一区二区| 51久久夜色精品国产麻豆| 国产免费黄色小视频| 一级日本在线| 91在线视频观看| 亚洲淫片在线视频| 超碰在线97观看| 伊人激情综合| 久久国产一区二区三区| 中文字幕日韩三级片| 国产精品一级在线观看| 91久久免费观看| www.在线观看av| 毛片在线看片| 欧美国产欧美综合| 蜜桃在线一区二区三区精品| 国产成人麻豆精品午夜在线| 免费在线观看不卡| 欧美一区二区三区精品电影| 九九在线观看视频| 国产韩日影视精品| 最近2019年中文视频免费在线观看| 亚洲欧美日韩色| 秋霞午夜一区二区三区视频| 欧美视频在线播放| 国产一区二区视频免费在线观看 | 亚洲国产综合在线| 免费看啪啪网站| 久蕉依人在线视频| 97精品国产97久久久久久久久久久久| 成人黄视频免费| 99视频国产精品免费观看a| 麻豆成人久久精品二区三区红| 欧美做受高潮1| 亚洲精品国产精品乱码| 黄页网站一区| 久久久久久一区二区三区| 国产精品 欧美激情| 91精品精品| 日韩视频免费看| 2017亚洲天堂| 欧美肥老太太性生活| 中文国产亚洲喷潮| 久久久久亚洲AV成人无在 | 欧美精品一区二区性色a+v| 91社区在线高清| 国产清纯在线一区二区www| 麻豆精品传媒视频| 可以在线观看的av| 欧美国产激情一区二区三区蜜月 | 91在线视频| 国产精品久久久久久久午夜片| 亚洲欧洲日韩精品| 高潮毛片在线观看| 亚洲人成伊人成综合网小说| 国产日本欧美在线| 永久免费网站在线| 亚洲国产精品一区二区久久恐怖片| 精品人妻人人做人人爽| 韩日毛片在线观看| 一本色道久久综合亚洲精品按摩| 久久婷婷国产91天堂综合精品| 二吊插入一穴一区二区| 91福利区一区二区三区| 天天干天天av| 午夜视频在线观看精品中文 | 国产麻豆剧传媒精品国产av| 欧美交a欧美精品喷水| 亚洲女同性videos| 国产免费嫩草影院| 欧美激情1区2区| 91av视频在线播放| 伊人亚洲综合网| 国产成人自拍网| 久久国产精品高清| av在线电影免费观看| 亚洲精品日韩一| 免费看的黄色大片| 亚洲一区二区三区久久久| 欧美精品一区二区三区四区| 欧美特级黄色录像| 欧美va亚洲va日韩∨a综合色| 午夜精品久久久久久久99黑人| 日韩在线播放中文字幕| 久久99精品国产91久久来源| 国产精品免费一区二区三区四区 | 都市激情亚洲| 一个人www欧美| 久草视频中文在线| 秋霞国产午夜精品免费视频| 97中文在线| 久久天堂电影| 一区二区三区四区精品在线视频 | 久久国产人妖系列| 狠狠综合久久av| 麻豆视频在线| 色老汉av一区二区三区| 欧洲成人午夜精品无码区久久| 啪啪亚洲精品| 欧美黄色三级网站| 一级做a爱片性色毛片| 91亚洲大成网污www| 一级二级三级欧美| 都市激情亚洲综合| 精品国产一区二区三区av性色| 亚洲天堂av中文字幕| 日韩一级在线| 国产91免费视频| 免费av在线| 岛国精品视频在线播放| 天堂va欧美va亚洲va老司机| 99re66热这里只有精品8| 欧美在线一区二区三区四| www.四虎在线观看| 亚洲品质自拍视频| 日本 片 成人 在线| 啄木系列成人av电影| 欧美激情在线观看| 国产日韩欧美视频在线观看| 欧美国产日产图区| 天堂中文视频在线| 国内成人精品| 日本精品久久中文字幕佐佐木 | 亚洲系列中文字幕| 五月天综合激情网| 97久久超碰精品国产| 久久国产精品网| 电影一区二区在线观看| 欧美国产日本在线| 国产成人手机在线| 亚洲一区二区三区三| 亚洲欧美日韩中文字幕在线观看| 91久久久精品国产| 91啪国产在线| www红色一片_亚洲成a人片在线观看_| 欧美剧在线免费观看网站| 日本少妇aaa| 久久er99精品| 一区二区三区视频在线播放| 国产资源一区| 久久精品色欧美aⅴ一区二区| 一道本在线视频| 国产精品国产三级国产普通话三级 | 国产精品日韩一区二区三区| 黄色成人在线网| 亚洲国产精久久久久久 | 欧洲黄色一区| 亚洲第一区中文字幕| 国产在线视频二区| av不卡免费电影| av片中文字幕| 成人黄色小视频| 国产欧美日韩中文字幕| 国精产品一区| 日韩美女一区二区三区四区| 国产亚洲自拍av| 久久亚洲一级片| 草草草在线视频| 天天做天天爱天天爽综合网| 91色p视频在线| av资源网在线播放| 亚洲天堂av在线免费观看| 国产精品久久久久久在线| 亚洲精品欧美激情| 熟妇高潮精品一区二区三区| 丝瓜av网站精品一区二区| 亚洲一区二区三区乱码| 欧美电影院免费观看| 51精品国产黑色丝袜高跟鞋| 国产区视频在线| 日韩视频免费观看高清完整版在线观看 | 美女尤物久久精品| 致1999电视剧免费观看策驰影院| 日韩一区网站| 国产aⅴ夜夜欢一区二区三区| 三区四区电影在线观看| 亚洲精品在线三区| 中文人妻熟女乱又乱精品| 亚洲精品日日夜夜| 欧美 日韩 国产 成人 在线观看| 麻豆国产一区二区| 人妻夜夜添夜夜无码av | 久久国产一区二区三区| 天堂在线视频观看| 欧美久久久影院| 国产一级精品视频| 亚洲免费伊人电影| 日韩精品电影一区二区| 国产成人丝袜美腿| 国产91色在线观看| 国产精品一区毛片| 国产精品一二三在线观看| 国产精品三级| 国产亚洲自拍偷拍| gogo大尺度成人免费视频| 国产不卡精品视男人的天堂| 婷婷在线播放| 色哟哟亚洲精品一区二区| 黄色一级a毛片| 在线播放中文字幕一区| 无码人妻精品一区二区50| 一二三区精品福利视频| 99成人在线观看| 国产三级精品在线| 亚洲国产综合视频| 国产91精品一区二区麻豆网站| 天天干天天爽天天射| 国产一区导航| 国产 日韩 亚洲 欧美| 亚洲乱码电影| 自拍偷拍亚洲色图欧美| 欧美肉体xxxx裸体137大胆| 精品国产一区二区三区麻豆免费观看完整版| 精品女同一区二区三区在线观看| 欧美在线一级va免费观看| 九九色在线视频| 美乳少妇欧美精品| 久久bbxx| 精品激情国产视频| 日本在线观看网站| 自拍亚洲一区欧美另类| 成人在线免费公开观看视频| 精品亚洲一区二区三区在线播放| 亚洲欧美强伦一区二区| 欧美一级专区免费大片| 国产激情久久久久久熟女老人av| 欧美喷水一区二区| 一炮成瘾1v1高h| 3d成人h动漫网站入口| 夜夜嗨aⅴ一区二区三区| 在线观看91视频| 亚洲第一区av| 欧美亚洲高清一区| 中文字幕无线码一区| 欧美日韩国产免费| 亚洲一区二区天堂| 69p69国产精品| 国产夫绿帽单男3p精品视频| 欧美一级高清片在线观看| 国产高清视频免费观看| 精品精品欲导航| 天堂成人在线观看| 日韩精品在线观看网站| 国产私人尤物无码不卡| 中文字幕日韩欧美| 麻豆传媒在线免费| 欧美疯狂性受xxxxx另类| 视频在线这里都是精品| 国内外成人免费激情在线视频网站| av中文字幕在线看| 欧美又大又粗又长| 97人人做人人爽香蕉精品| 国产色视频一区| 狂野欧美xxxx韩国少妇| 成人毛片网站| 自拍偷拍一区| 中文字幕不卡每日更新1区2区| 欧美影院一区| 国产人妻777人伦精品hd| 首页综合国产亚洲丝袜| 国产一区二区在线观看免费视频| 国产麻豆精品视频| 日本人添下边视频免费| 欧美激情一区三区| 成年人av电影| 欧美日韩一区二区在线播放| 中文有码在线播放| 精品免费视频.| 黄色在线小视频| 久久福利视频导航| 悠悠资源网亚洲青| 成人久久一区二区| 久久免费视频66| 一区二区三区四区免费视频| 亚洲天堂成人| 国产理论在线播放| 成人免费三级在线| 成年人免费视频播放| 亚洲不卡在线观看| 一级黄色片免费看| 亚洲精品97久久| 国产美女福利在线| 日本精品久久中文字幕佐佐木 | 久久国产日韩欧美| 91麻豆精品国产91久久久平台| 国产精品久久久久7777| 美女脱光内衣内裤视频久久影院| 国产人妖在线观看| 亚洲欧洲无码一区二区三区| 在线观看精品国产| 91精品国产高清一区二区三区| 四虎精品成人影院观看地址| 久久精品视频在线播放| 欧美电影免费观看| 成人av资源网| 91tv精品福利国产在线观看| 国产极品美女高潮无套久久久| 国产成人在线观看免费网站| 微拍福利一区二区| 五月天欧美精品| 国产高清视频免费观看| 在线日韩日本国产亚洲| 色戒汤唯在线| 国产精品一区在线播放| 亚洲午夜精品一区二区国产| 成人在线观看黄| 99精品1区2区| 日本五十熟hd丰满| 日韩一区二区三区在线观看| 91最新在线| 国产精品久久久久久久午夜 | 手机福利在线视频| 日本sm残虐另类| 中文幕无线码中文字蜜桃| 亚洲国产三级在线| 亚洲av无码乱码国产精品| 日韩在线观看免费全| 欧美日韩精品一区二区三区视频| 久久综合给合久久狠狠色| 亚洲国产高清视频| 男人女人拔萝卜视频| 亚洲美女淫视频| 国产熟女精品视频| 超碰日本道色综合久久综合| 9.1麻豆精品| 中文字幕日韩一区二区三区不卡| 日本不卡123| 亚洲a∨无码无在线观看| 欧美在线观看一二区| 成人在线免费观看| 国产欧美精品va在线观看| 日韩www.| 日韩精品视频一二三| 国产精品理伦片| 国产又粗又大又爽视频| 超碰精品一区二区三区乱码| 老司机亚洲精品一区二区| 2021狠狠干| 丁香啪啪综合成人亚洲小说| 日韩精品成人在线| 亚洲黄色在线看| 免费成人直播| 视频在线99| 久99久精品视频免费观看| 97在线观看免费高| 日韩精品一区二区三区在线播放| 欧美aaa免费| 精品在线视频一区二区三区| 亚洲永久字幕| 久久久久久国产免费a片| 欧美军同video69gay| 污片视频在线免费观看| 精品国产一区二区三区四区精华| 久久久久久久欧美精品| 中文字幕av久久爽一区| 91.麻豆视频| av影视在线| 欧美一区二区三区成人久久片| 免费在线一区观看| 九九热国产在线| 亚洲美女在线观看| 中文字幕日本一区| 成人免费观看cn| 国产欧美日本一区视频| 国产三级按摩推拿按摩| 午夜精品久久17c| 久久国产亚洲| 亚洲一区二区三区黄色| 色综合欧美在线| www在线免费观看视频| 久久久99国产精品免费| 麻豆免费精品视频| 日本亚洲色大成网站www久久| 亚洲欧美日韩精品久久奇米色影视| 99只有精品| 性一交一乱一伧国产女士spa| 久久久国产午夜精品| 精品人妻伦一区二区三区久久| 5566成人精品视频免费| 忘忧草精品久久久久久久高清| 亚洲激情 欧美| 在线不卡a资源高清| 特黄毛片在线观看| 黄色片免费在线观看视频| 久久精品欧美一区二区三区不卡 | 波多野结衣mp4| 欧美极品少妇与黑人| 成人精品影视|