国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

WebAssembly基礎(chǔ)

The question / 3262人閱讀

摘要:具有非常高安全性,它在一個(gè)沙箱環(huán)境中執(zhí)行,同時(shí)遵守瀏覽器的同源策略和權(quán)限規(guī)則。的關(guān)鍵部分概覽表示由瀏覽器編譯為可執(zhí)行機(jī)器代碼的二進(jìn)制文件。一種引用類型的可變素組例如函數(shù),無(wú)法將其作為原始字節(jié)存儲(chǔ)在存儲(chǔ)器中。

WebAssembly定義

WebAssembly是一種的語(yǔ)言,可以在現(xiàn)代瀏覽器環(huán)境中運(yùn)行,并提供了功能和性能上的優(yōu)勢(shì)。可以將其它語(yǔ)言,如C/C++等,編譯成Assembly格式的代碼,然后在瀏覽器中運(yùn)行。

WebAssembly的目標(biāo)

WebAssembly代碼可以獲得非常快的運(yùn)行速度。

增加可讀性,WebAssembly還有可讀的文本格式,易于編寫(xiě),調(diào)試和閱讀。

WebAssembly具有非常高安全性,它在一個(gè)沙箱環(huán)境中執(zhí)行,同時(shí)遵守瀏覽器的同源策略和權(quán)限規(guī)則。

和其它Web語(yǔ)言有很好的兼容性

WebAssembly工作原理

Web平臺(tái)有兩不分組成組成:a)執(zhí)行應(yīng)用程序的虛擬機(jī),b)Web API,例如(DOM,WebGL等)。為了讓瀏覽器支持Assembly,虛擬機(jī)實(shí)現(xiàn)了加載兩種語(yǔ)言(javascript,Assembly)的功能,javascript可以同過(guò)Web API引入WebAssembly代碼,WebAssembly可以導(dǎo)入和異步執(zhí)行javascript的模塊。

WebAssembly的關(guān)鍵部分概覽

module:表示由瀏覽器編譯為可執(zhí)行機(jī)器代碼的WebAssembly二進(jìn)制文件。 對(duì)于一個(gè)模塊是無(wú)狀態(tài)的,因此,像Blob一樣,可以顯式緩存在IndexedDB中,也可以在windows和worker之間共享(通過(guò)postMessage())。 A模塊像ES2015模塊一樣聲明導(dǎo)入和導(dǎo)出。

Memory:一個(gè)可調(diào)整大小的ArrayBuffer,它包含可以被WebAssembly的低級(jí)內(nèi)存訪問(wèn)指令讀取和寫(xiě)入的線性字節(jié)數(shù)組。

Table:一種引用類型的可變素組(例如函數(shù)),無(wú)法將其作為原始字節(jié)存儲(chǔ)在存儲(chǔ)器中。

Instance:module,Memory,Table等得運(yùn)行實(shí)例

一個(gè)C++程序轉(zhuǎn)化為Assembly的例子

安裝Emscripten

編寫(xiě)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`

用瀏覽器打開(kāi)hello.html,即可查看效果

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/83233.html

相關(guān)文章

  • WebAssembly 為什么比 asm.js 快?

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

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

    摘要:前端每周清單專注前端領(lǐng)域內(nèi)容,以對(duì)外文資料的搜集為主,幫助開(kāi)發(fā)者了解一周前端熱點(diǎn)分為新聞熱點(diǎn)開(kāi)發(fā)教程工程實(shí)踐深度閱讀開(kāi)源項(xiàng)目巔峰人生等欄目。利用降低三倍加載速度自推出之后,很多開(kāi)發(fā)者都開(kāi)始嘗試在小型項(xiàng)目中實(shí)踐,不過(guò)尚缺大型真實(shí)案例比較。 前端每周清單專注前端領(lǐng)域內(nèi)容,以對(duì)外文資料的搜集為主,幫助開(kāi)發(fā)者了解一周前端熱點(diǎn);分為新聞熱點(diǎn)、開(kāi)發(fā)教程、工程實(shí)踐、深度閱讀、開(kāi)源項(xiàng)目、巔峰人生等欄目...

    Alan 評(píng)論0 收藏0
  • 圖說(shuō) WebAssembly(四):快速入門

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

    BoYang 評(píng)論0 收藏0
  • WebAssembly介紹

    摘要:工作原理分點(diǎn)介紹官方解讀它可以從各類現(xiàn)有的其他高級(jí)語(yǔ)言寫(xiě)的業(yè)務(wù)庫(kù)編譯而來(lái),比如下文提到的庫(kù),就是一種語(yǔ)言編寫(xiě)的剛體動(dòng)力學(xué)與碰撞檢測(cè)計(jì)算的庫(kù)。 1、WebAssembly工作原理 分點(diǎn)介紹 官方解讀 它可以從各類現(xiàn)有的其他高級(jí)語(yǔ)言寫(xiě)的業(yè)務(wù)庫(kù)編譯而來(lái),比如下文提到的bullet庫(kù),就是一種C++語(yǔ)言編寫(xiě)的剛體動(dòng)力學(xué)與碰撞檢測(cè)計(jì)算的庫(kù)。根據(jù)調(diào)研,還有Haskell、Go、C#的語(yǔ)言的一些We...

    appetizerio 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<