摘要:具有非常高安全性,它在一個沙箱環(huán)境中執(zhí)行,同時遵守瀏覽器的同源策略和權(quán)限規(guī)則。的關(guān)鍵部分概覽表示由瀏覽器編譯為可執(zhí)行機(jī)器代碼的二進(jìn)制文件。一種引用類型的可變素組例如函數(shù),無法將其作為原始字節(jié)存儲在存儲器中。
WebAssembly定義
WebAssembly是一種的語言,可以在現(xiàn)代瀏覽器環(huán)境中運(yùn)行,并提供了功能和性能上的優(yōu)勢??梢詫⑵渌Z言,如C/C++等,編譯成Assembly格式的代碼,然后在瀏覽器中運(yùn)行。
WebAssembly的目標(biāo)WebAssembly代碼可以獲得非??斓倪\(yùn)行速度。
增加可讀性,WebAssembly還有可讀的文本格式,易于編寫,調(diào)試和閱讀。
WebAssembly具有非常高安全性,它在一個沙箱環(huán)境中執(zhí)行,同時遵守瀏覽器的同源策略和權(quán)限規(guī)則。
和其它Web語言有很好的兼容性
WebAssembly工作原理Web平臺有兩不分組成組成:a)執(zhí)行應(yīng)用程序的虛擬機(jī),b)Web API,例如(DOM,WebGL等)。為了讓瀏覽器支持Assembly,虛擬機(jī)實(shí)現(xiàn)了加載兩種語言(javascript,Assembly)的功能,javascript可以同過Web API引入WebAssembly代碼,WebAssembly可以導(dǎo)入和異步執(zhí)行javascript的模塊。
WebAssembly的關(guān)鍵部分概覽module:表示由瀏覽器編譯為可執(zhí)行機(jī)器代碼的WebAssembly二進(jìn)制文件。 對于一個模塊是無狀態(tài)的,因此,像Blob一樣,可以顯式緩存在IndexedDB中,也可以在windows和worker之間共享(通過postMessage())。 A模塊像ES2015模塊一樣聲明導(dǎo)入和導(dǎo)出。
Memory:一個可調(diào)整大小的ArrayBuffer,它包含可以被WebAssembly的低級內(nèi)存訪問指令讀取和寫入的線性字節(jié)數(shù)組。
Table:一種引用類型的可變素組(例如函數(shù)),無法將其作為原始字節(jié)存儲在存儲器中。
Instance:module,Memory,Table等得運(yùn)行實(shí)例
一個C++程序轉(zhuǎn)化為Assembly的例子安裝Emscripten
編寫c++程序,例如:
#includeint main() { printf("hello, world! "); return 0; }
將C++命名,此處命名為hello.c,然后編譯輸出html代碼,編譯命令如下:
emcc hello.c -s WASM=1 -o hello.html
編譯輸出文件如下:
`hello.html
hello.js
hello.js.temp.js`
用瀏覽器打開hello.html,即可查看效果
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/83233.html
摘要:并且于年月日,四個主要的瀏覽器一致同意宣布的版本已經(jīng)完成,即將推出一個瀏覽器可以搭載的穩(wěn)定版本。因此本文著重介紹為什么比更快。本文主要表達(dá)的是為什么應(yīng)該是更快的。則不同,它是由幾大主要的瀏覽器廠商共同設(shè)計的。 作者:Alon Zakai 編譯:胡子大哈 翻譯原文:http://huziketang.com/blog/posts/detail?postId=58ce80d2a6d8a0...
摘要:前端每周清單專注前端領(lǐng)域內(nèi)容,以對外文資料的搜集為主,幫助開發(fā)者了解一周前端熱點(diǎn)分為新聞熱點(diǎn)開發(fā)教程工程實(shí)踐深度閱讀開源項(xiàng)目巔峰人生等欄目。利用降低三倍加載速度自推出之后,很多開發(fā)者都開始嘗試在小型項(xiàng)目中實(shí)踐,不過尚缺大型真實(shí)案例比較。 前端每周清單專注前端領(lǐng)域內(nèi)容,以對外文資料的搜集為主,幫助開發(fā)者了解一周前端熱點(diǎn);分為新聞熱點(diǎn)、開發(fā)教程、工程實(shí)踐、深度閱讀、開源項(xiàng)目、巔峰人生等欄目...
摘要:本文是圖說系列文章的第四篇。它們表示一種可以在普遍流行機(jī)器上高效使用的指令集合。這是因?yàn)槭且环N稱為堆棧機(jī)器。盡管是根據(jù)堆棧機(jī)器來設(shè)計的,但是這并不是它在真實(shí)物理機(jī)器上工作的方式。這些內(nèi)容稱為段。 本文是圖說 WebAssembly 系列文章的第四篇。如果您還未閱讀之前的文章,建議您從第一篇入手。 WebAssembly 是一種使得除 JavaScript 以外的編程語言也能運(yùn)行在網(wǎng)頁上...
摘要:工作原理分點(diǎn)介紹官方解讀它可以從各類現(xiàn)有的其他高級語言寫的業(yè)務(wù)庫編譯而來,比如下文提到的庫,就是一種語言編寫的剛體動力學(xué)與碰撞檢測計算的庫。 1、WebAssembly工作原理 分點(diǎn)介紹 官方解讀 它可以從各類現(xiàn)有的其他高級語言寫的業(yè)務(wù)庫編譯而來,比如下文提到的bullet庫,就是一種C++語言編寫的剛體動力學(xué)與碰撞檢測計算的庫。根據(jù)調(diào)研,還有Haskell、Go、C#的語言的一些We...
閱讀 1775·2021-10-11 10:57
閱讀 2365·2021-10-08 10:14
閱讀 3404·2019-08-29 17:26
閱讀 3363·2019-08-28 17:54
閱讀 3032·2019-08-26 13:38
閱讀 2914·2019-08-26 12:19
閱讀 3618·2019-08-23 18:05
閱讀 1289·2019-08-23 17:04