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

資訊專欄INFORMATION COLUMN

WebAssembly介紹

appetizerio / 429人閱讀

摘要:工作原理分點介紹官方解讀它可以從各類現有的其他高級語言寫的業務庫編譯而來,比如下文提到的庫,就是一種語言編寫的剛體動力學與碰撞檢測計算的庫。

1、WebAssembly工作原理 分點介紹
官方解讀

它可以從各類現有的其他高級語言寫的業務庫編譯而來,比如下文提到的bullet庫,就是一種C++語言編寫的剛體動力學與
碰撞檢測計算的庫。根據調研,還有Haskell、Go、C#的語言的一些WebAssembly編譯工具或者已經編譯成的WebAssembly代碼庫,
OK,既然是經過編譯而得來,可以將WebAssembly理解為是該庫的低級語言代碼版本,是一種類匯編語言。

另類理解

可以把它理解成一個ES6語法寫的js模塊,既可以有導入又有導出,也可以沒有導入只有導出。

兩類文件

WebAssembly文件格式與源碼閱讀->.wasm文件和.wast文件

WebAssembly代碼存儲在.wasm文件內,這類文件是要瀏覽器直接執行的。
因為.wasm文件內是二進制文件,難以閱讀,為了方便開發者查看,官方給出了對.wasm文件的閱讀方法,
通過把.wasm文件通過工具轉為.wast的文本格式,開發者可以在一定程度上理解這個.wast文件。
.wast文件是通過S-表達式(一種類似lisp語言的代碼書寫風格)來寫成的,
至于怎么讀懂S-表達式,請去看官方介紹。
.wast文件和.wasm文件的關系,他們之間的相互轉化,可以通過工具wabt(https://github.com/WebAssembl...)
實現。

工作流程

某高級語言寫的某功能庫-->emscripten編譯-->.wasm文件-->結合WebAssembly JS API-->瀏覽器中運行
完成一部分 用js寫,而后依靠瀏覽器解釋執行,會比較消耗性能 的工作,比如視頻解碼,OpenGL,OpenCV等。
簡單來說,加載運行wasm代碼的過程如下圖所示。



得到wasm文件后,就可以使用js加載該模塊,實例化該模塊,運行該模塊中的函數。

如上,通過js調用這兩個c語言方法,瀏覽器運行,控制臺打印出正確結果。

5、基于WebAssembly模塊庫ammo.js的Demo Demo介紹

基于three.js構建了三維場景,場景中有一個圖片紋理拼成的ground地面,和兩個THREE.Mesh()方法創建的
球體,這兩個球體在地面上一左一右有固定的位置。

然后使用ammo構建了一個剛體動力學環境,這是一個有重力、考慮物體慣性等的物理環境,在這個環境中創建了
一個球體(界面中不可見),給該球體設置了一些剛體動力學的參數,如平移、旋轉等,設置完這些參數再使用相反的
API獲取這些參數,然后把這些參數賦給three.js創建的第二個球體(圖1中右邊那個),一秒后重新渲染threejs場景,該球體
則獲得了一個平移的參數,移動到相應的(本例中是更靠右)的位置。

圖1 使用ammo庫前

圖2 調用ammo相關代碼后

Demo源代碼地址

https://github.com/cunzaizhuy...

如需測試使用,請注意替換掉以下兩行


本Demo參考鏈接

(1)Bullet類庫API http://bulletphysics.org/Bull...

(2)Ammo庫地址 https://github.com/kripken/am...

6、WebAssembly資源推薦

(1)英文官網 http://webassembly.org/

(2)中文官網 http://webassembly.org.cn/

(3)MDN網址 https://developer.mozilla.org...

(4)資料齊全 https://github.com/mbasso/awe...

(5)一篇講解詳細的博客 https://segmentfault.com/a/11...

(6)一篇講解詳細的博客 https://segmentfault.com/a/11...

(7)有編譯工具鏈簡單介紹 http://geek.csdn.net/news/det...

(0)本篇博客中的一些資源 https://github.com/cunzaizhuy...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/91843.html

相關文章

  • 前端每周清單半年盤點之 WebAssembly

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

    Alan 評論0 收藏0
  • WebAssembly 系列(一)生動形象地介紹 WebAssembly

    摘要:但是為什么執行的更快呢在這個系列文章中,我會為你解釋這一點。所以當人們說更快的時候,一般來講是與相比而言的。被人們廣為傳播的性能大戰在年打響。性能的提升使得的應用范圍得到很大的擴展。現在通過,我們很有可能正處于第二個拐點。 作者:Lin Clark 編譯:胡子大哈 翻譯原文:http://huziketang.com/blog/posts/detail?postId=58ce8036...

    wangbjun 評論0 收藏0
  • WebAssembly 系列(四)WebAssembly 工作原理

    摘要:但是它們其實并不是二選一的關系并不是只能用或者。正因為如此,指令有時也被稱為虛擬指令。這是因為是采用基于棧的虛擬機的機制。聲明模塊的全局變量。。下文預告現在你已經了解了模塊的工作原理,下面將會介紹為什么運行的更快。 作者:Lin Clark 編譯:胡子大哈 翻譯原文:http://huziketang.com/blog/posts/detail?postId=58c77641a6d8...

    stormzhang 評論0 收藏0
  • WebAssembly 為什么比 asm.js 快?

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

    Binguner 評論0 收藏0
  • WebAssembly 系列(五)為什么 WebAssembly 更快?

    摘要:圖表中的比例并不代表真實情況下的確切比例情況。解析當到達瀏覽器時,源代碼就被解析成了抽象語法樹。解析過后抽象語法樹就變成了中間代碼叫做字節碼,提供給引擎編譯。目前為止,不支持垃圾回收。這就是為什么在大多數情況下,同一個任務比表現更好的原因。 作者:Lin Clark 編譯:胡子大哈 翻譯原文:http://huziketang.com/blog/posts/detail?postId...

    劉德剛 評論0 收藏0

發表評論

0條評論

appetizerio

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<