cheerp 簡介

這個文章主要介紹了爲什麼要用cheerp技術以及和其他對標的技術對比,他的閃光點在哪裏。

WebAssembly 是一種中間碼用於加速瀏覽器端應用,目前有多種語言可以編譯或者交叉到這種格式。當然這個不是本文的內容,詳細瞭解請移步 wasm官網

目前支持:

cc++是官方推薦的方式,詳細使用見文檔;
其他語言

  1. AssemblyScript:語法和 TypeScript 一致,對前端來說學習成本低,爲前端編寫 WebAssembly 最佳選擇;
  2. Rust:語法複雜、學習成本高,對前端來說可能會不適應。詳細使用見文檔;
  3. Kotlin:語法和 Java、JS 相似,語言學習成本低,詳細使用見文檔;
  4. Golang:語法簡單學習成本低。但對 WebAssembly 的支持還處於未正式發佈階段,詳細使用見文檔。

cheerp:

cheerp技術是基於llvm的一個交叉工具技術集合, 目前可以支持到的交叉
c/c++到javascript/asm.js/wasm的功能完備的的可移植方案。

筆者從2014年開始就接觸cheerp至今, 一直對這個技術抱有極大的熱情。

對比emcc(不懂自行百度)優勢和劣勢。

優勢:

  1. cheerp代碼更加簡單, 環境配置也簡單。
  2. 完備的C++14支持。
  3. 編譯後擁有更小的體積(內存模型)
  4. 更容易的混合編程(c++,js,wasm)
  5. 更快的性能
  6. 可以支持降級方案

缺點: 幾乎是唯一也是致命的缺點,沒有對應的文檔。

對比其他交叉到wasm的方案

  1. LLVM AOT支持
  2. 本地數學庫支持
  3. 交織流水線優化
  4. 更短的指令集合
  5. 更適合大型項目
  6. 無差別融合asm.js/js庫
  7. 超越30%的性能

性能:
c/c++開啓優化1200ms >
wasm 1990ms >
c/c++未開啓優化 2400ms >
asm.js 2600ms >
node.js 2900ms >
luajit 4500ms>
lua5.2 34000ms

by 鍾元 [email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章