精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲天堂精品在线观看| 久久激情中文| 欧美mv和日韩mv的网站| 国产va亚洲va在线va| 涩涩视频免费看| 日本午夜精品视频在线观看| 久久成人亚洲精品| 精品国产乱码久久久久久夜甘婷婷 | 丁香婷婷在线| 欧美h在线观看| 啊v视频在线| 国产高清亚洲一区| 日本高清不卡在线| 久久福利免费视频| 丝袜美腿一区二区三区动态图 | 99re在线国产| 亚洲 欧美 成人| 天天综合精品| 亚洲跨种族黑人xxx| 在线黄色免费看| 樱桃视频成人在线观看| 亚洲人123区| 欧美人xxxxx| www.蜜臀av| 久久精品999| 欧美一性一乱一交一视频| 波多野结衣家庭教师| 国产精品一国产精品| 日韩免费福利电影在线观看| 女人扒开屁股爽桶30分钟| 免费大片在线观看www| 91亚洲精华国产精华精华液| 91探花福利精品国产自产在线| 日本乱子伦xxxx| 亚洲午夜久久久久久久久红桃| 在线观看免费黄色小视频| 影音先锋久久资源网| 久久久精品影院| 日本精品在线观看视频| 日韩精品丝袜美腿| 欧美久久久久久久久中文字幕| 在线免费一区| 高清美女视频一区| 26uuu久久综合| 国产精品永久入口久久久| 一级全黄裸体免费视频| 爽爽淫人综合网网站| 欧美黄色www| 麻豆chinese极品少妇| 91亚洲国产| 一区二区亚洲欧洲国产日韩| 国产又爽又黄无码无遮挡在线观看| 91久久国产综合久久91猫猫| 亚洲电影在线免费观看| 成人免费在线视频播放| 五月花成人网| 亚洲综合视频在线| www.日本三级| 8x8ⅹ拨牐拨牐拨牐在线观看| 97精品国产97久久久久久久久久久久| 欧洲亚洲在线视频| 欧美日韩综合在线观看| 亚洲一区二区成人| 97精品视频在线观看| 日本一区二区三区免费视频| 国内自拍一区| 97超碰蝌蚪网人人做人人爽| 久久久精品福利| 久久精品男女| 国产精品一区av| 国产精品高潮呻吟av| 国内欧美视频一区二区| 91九色偷拍| 少妇喷水在线观看| 久久日韩粉嫩一区二区三区| 四虎永久在线精品免费一区二区| 最新在线黄色网址| 91精品在线视频观看| 免费黄网站欧美| 国产主播在线一区| www.av在线.com| 亚洲黄色在线免费观看| 激情视频在线观看免费| 久久夜色精品国产噜噜av| 国产精品久久久久久久免费大片| 亚洲va在线观看| 日本午夜一区二区| 91九色单男在线观看| 亚洲精品中文字幕成人片| 99精品视频在线播放观看| 欧美日本国产精品| 天堂资源在线中文| 亚洲一区二区三区爽爽爽爽爽 | 免费成年人高清视频| 97久久中文字幕| 精品成人佐山爱一区二区| 性久久久久久久久久| 99久久亚洲精品蜜臀| 欧美激情视频一区二区三区不卡| 欧日韩不卡视频| 欧美日本久久| 国产精品久久久久9999| 超碰在线观看av| 久久精品一区蜜桃臀影院| 国产av第一区| 日本欧美日韩| 一区二区三区四区日韩| 欧美性受xxxx| 欧美性生交xxxxx| 成人久久一区| 午夜精品久久久久久久久久久久久| 小向美奈子av| 亚洲影音先锋| 97久久人人超碰caoprom欧美 | 久久精品观看| 97超碰人人看人人| 户外极限露出调教在线视频| 一区二区三区日本| 老司机久久精品| 精品成人影院| 韩国福利视频一区| 国内老熟妇对白xxxxhd| 国产精品丝袜91| 国产男人精品视频| 中文字幕天天干| 成人在线超碰| 久久久精品一区二区| 日本黄色中文字幕| av中文一区二区三区| 肉大捧一出免费观看网站在线播放| 午夜激情在线观看| 色婷婷激情综合| 粉嫩av懂色av蜜臀av分享| 综合久久99| 91免费综合在线| 久久久久久久久免费视频| 日本高清不卡视频| 国产在线观看无码免费视频| 亚洲经典视频在线观看| 国产另类自拍| 草美女在线观看| 精品美女一区二区三区| 国产女人被狂躁到高潮小说| 国产专区综合网| 日本老太婆做爰视频| 亚洲狼人综合| 久久综合色88| 国产91视频在线| 一区二区三区免费看视频| 欧美一级免费在线| 欧美成人一区二免费视频软件| 91精品国产91久久久久久久久| 无码无套少妇毛多18pxxxx| 91蜜桃婷婷狠狠久久综合9色| 一区二区三视频| 激情欧美一区二区三区黑长吊| 亚洲精品一区二区三区影院| 国产在线欧美在线| 97aⅴ精品视频一二三区| www.av片| 综合伊思人在钱三区| 青青在线视频一区二区三区| 你懂的在线看| 欧美日韩午夜影院| 希岛爱理中文字幕| 高清久久久久久| 黄色片一级视频| 欧美日韩国产一区二区三区不卡| 久久久久久久电影一区| 四虎在线视频| 久久综合偷偷噜噜噜色| 久久精品一区蜜桃臀影院| 无码日韩人妻精品久久蜜桃| 久久影视一区| 高清av免费一区中文字幕| 小草在线视频免费播放| 日韩精品视频在线观看免费| 欧美性猛交bbbbb精品| 亚洲国产精品成人久久综合一区| 日韩精品在线中文字幕| 日韩欧美在线精品| 日韩免费不卡av| 免费av不卡| 欧美一二三区在线| 亚洲天堂一区在线| 国产精品女同一区二区三区| 深夜做爰性大片蜜桃| 欧美亚洲自偷自偷| 久久久一二三四| 五月综合久久| 成人激情视频网| 亚洲天堂手机| 欧美日韩国产成人在线| 四虎在线视频| 日韩欧美一级二级| 免费在线不卡av| 亚洲午夜久久久久久久久电影网| wwwxxx色| 日本伊人色综合网| 成人免费播放器| 香蕉国产精品| 欧美在线视频二区| 在线一区二区三区视频| 国产精品久久久久av| av最新在线| 日韩在线国产精品| 色播色播色播色播色播在线 | 一区二区三区久久精品| 国产成人精品a视频| 在线视频一区二区免费| 国产主播在线播放| 中文字幕不卡一区| 国内精品久久99人妻无码| 国产一区二三区| 三级a在线观看| 亚洲一区图片| 成人午夜视频在线观看免费| 99久久精品国产亚洲精品| 蜜桃传媒视频第一区入口在线看| 肉色欧美久久久久久久免费看| 精品香蕉一区二区三区| 性猛交xxxx乱大交孕妇印度| 欧美日韩你懂得| 波多野结衣在线电影| 午夜久久久久久久久久一区二区| 菠萝菠萝蜜网站| 国内成人精品2018免费看| 欧美成人xxxxx| 中文国产一区| 无码人妻少妇伦在线电影| 亚洲欧洲日韩| 在线免费观看一区二区三区| 清纯唯美日韩| 亚洲在线欧美| 欧美先锋资源| 亚洲国产成人不卡| 欧美美女一区| 亚洲黄色成人久久久| 欧美日韩性在线观看| 亚洲国产婷婷香蕉久久久久久99| 欧美在线在线| 亚洲aaaaaa| 久久久久久久久成人| 91在线视频免费| 激情五月综合婷婷| 91麻豆国产精品| 欧美.com| 国产亚洲精品自在久久| 亚洲一区二区电影| 国产精品一级久久久| 奇米影视777在线欧美电影观看| 国产精品网红福利| 日日av拍夜夜添久久免费| 清纯唯美亚洲综合| 国产91亚洲精品久久久| 国产精品一区二区久久国产| 亚洲伦理网站| 99蜜桃在线观看免费视频网站| 午夜精品久久久久久久久久蜜桃| 久久久国产一区二区三区| 国产一二区在线| 欧美激情国产日韩精品一区18| 可以免费看污视频的网站在线| 555www色欧美视频| 国产喷水吹潮视频www| 精品国产百合女同互慰| 性感美女一级片| 亚洲午夜久久久久久久| 欧美性猛交xxx乱大交3蜜桃| 操日韩av在线电影| bl在线肉h视频大尺度| 日韩美女av在线免费观看| 男人天堂久久| 国产不卡一区二区在线观看| 欧美自拍视频| 亚洲三区在线| 影音先锋久久久| 日韩亚洲在线视频| 国产综合色在线| 久久久国产精品无码| 国产欧美va欧美不卡在线| 少妇视频一区二区| 亚洲国产精品嫩草影院| 国产精品久久久久久久妇| 欧美亚洲图片小说| 国产av一区二区三区| 亚洲精品美女久久久久| 欧洲日本在线| 97人人做人人爱| 婷婷丁香久久| 久久精品aaaaaa毛片| 先锋资源久久| 免费裸体美女网站| 激情综合亚洲精品| 黄色网址在线视频| 国产精品午夜在线| 国内免费精品视频| 7777精品久久久大香线蕉| 色视频在线观看| 色综合久综合久久综合久鬼88 | 免费av网站观看| 亚洲香蕉成视频在线观看| 神马午夜伦理不卡 | 亚洲一区bb| 日韩一区二区免费看| 国内自拍第二页| 久久久久国产免费免费| 精品无码免费视频| 欧美日韩成人综合在线一区二区| 在线观看毛片视频| 日韩电影免费观看中文字幕| 成人高清免费在线| 日本久久久久亚洲中字幕| 成人在线tv视频| 可以在线看黄的网站| 日本麻豆一区二区三区视频| 中文字幕在线永久| 亚洲主播在线观看| 国产精品无码专区av免费播放| 日韩欧美激情一区| 97视频在线观看网站| 亚洲97在线观看| 2023国产精华国产精品| 欧美爱爱视频网站| 蜜臀av一级做a爰片久久| 男女黄床上色视频| 欧美日韩激情视频| 色婷婷av一区二区三区之红樱桃| 亚洲精品中文字| 波多野结衣视频一区二区| 成人av片网址| 激情综合久久| 欧美丰满熟妇bbb久久久| 亚洲视频每日更新| 国产又黄又大又爽| 久久久精品国产网站| 国产精品99| 一本色道久久综合亚洲精品婷婷| 亚洲一级影院| 久久av一区二区三| 一区二区三区加勒比av| 精品人妻午夜一区二区三区四区 | 三级视频在线播放| 91国内精品久久| 欧美精品国产白浆久久久久| 欧美午夜小视频| 97久久精品人人做人人爽50路| 亚洲一二三精品| 欧美日韩一本到| 五月婷婷在线观看| 91香蕉国产在线观看| 午夜精品久久久久99热蜜桃导演| 黄色免费观看视频网站| 99久久久精品免费观看国产蜜| 中文字幕精品亚洲| 欧美日韩成人一区| 国产精品剧情| 国产精品露出视频| 亚洲欧美视频| 成人一级片免费看| 欧美久久免费观看| 色www永久免费视频首页在线| 国产精品第七影院| 欧美激情欧美| 成人做爰69片免费| 懂色aⅴ精品一区二区三区蜜月| 国产精品特级毛片一区二区三区| 日韩精品高清在线观看| 欧美舌奴丨vk视频| 亚洲五月六月| 国产91对白在线观看九色| 日韩污视频在线观看| 亚洲一级免费视频| 精品国产麻豆| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 国产成人激情av| 久久久久久少妇| 日韩视频第一页| 国产丝袜一区| 在线观看亚洲色图| 亚洲一区在线观看免费 | 丁香婷婷综合色啪| 日韩精品视频免费看| 一区二区欧美日韩视频| 欧美精品影院| 精品www久久久久奶水| 18涩涩午夜精品.www| 天天影院图片亚洲| 国产色视频一区| 亚洲少妇自拍| 动漫性做爰视频| 亚洲欧美日韩一区二区在线| 国产专区精品| www.欧美日本| 亚洲一区免费观看| av网站无病毒在线| 精品免费国产| 国产精品影视网| 免费看av在线| 2020久久国产精品|