成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

WebAssembly基礎(chǔ)

The question / 3265人閱讀

摘要:具有非常高安全性,它在一個沙箱環(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++程序,例如:

#include 

int 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

相關(guān)文章

  • WebAssembly 為什么比 asm.js 快?

    摘要:并且于年月日,四個主要的瀏覽器一致同意宣布的版本已經(jīng)完成,即將推出一個瀏覽器可以搭載的穩(wěn)定版本。因此本文著重介紹為什么比更快。本文主要表達(dá)的是為什么應(yīng)該是更快的。則不同,它是由幾大主要的瀏覽器廠商共同設(shè)計的。 作者:Alon Zakai 編譯:胡子大哈 翻譯原文:http://huziketang.com/blog/posts/detail?postId=58ce80d2a6d8a0...

    Binguner 評論0 收藏0
  • 前端每周清單半年盤點(diǎn)之 WebAssembly

    摘要:前端每周清單專注前端領(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)目、巔峰人生等欄目...

    Alan 評論0 收藏0
  • 圖說 WebAssembly(四):快速入門

    摘要:本文是圖說系列文章的第四篇。它們表示一種可以在普遍流行機(jī)器上高效使用的指令集合。這是因?yàn)槭且环N稱為堆棧機(jī)器。盡管是根據(jù)堆棧機(jī)器來設(shè)計的,但是這并不是它在真實(shí)物理機(jī)器上工作的方式。這些內(nèi)容稱為段。 本文是圖說 WebAssembly 系列文章的第四篇。如果您還未閱讀之前的文章,建議您從第一篇入手。 WebAssembly 是一種使得除 JavaScript 以外的編程語言也能運(yùn)行在網(wǎng)頁上...

    BoYang 評論0 收藏0
  • WebAssembly介紹

    摘要:工作原理分點(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...

    appetizerio 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<