专栏首页Web行业观察8 个 WebAssembly 应用案例直击 /转

8 个 WebAssembly 应用案例直击 /转

除了瀏覽器業者、遊戲業者大力支援WebAssembly外,許多需要加速效能表現的大型網頁應用或線上工具,也都能得利於WebAssembly的超快執行速度。目前WebAssembly已經開始應用在哪些場景呢?從這8個WebAssembly應用可以一探究竟,其中,有些專案更在GitHub上釋出了原始程式碼,可供開發者參考,來打造出自己的WebAssembly應用。

1. TeaVM-快速將Java程式碼轉成JavaScript應用

TeaVM(https://goo.gl/dMGLVU)是一款編譯器,讓開發者可以將Java Bytecode編譯成JavaScript或WebAssembly格式,除了可以讓Java開發者進行前端開發工作外,也能整合舊有的後端Java開發基礎架構。在功能面上,TeaVM能與Google Web Tooklit(GWT)提供相仿的功能,將Java程式碼轉換成JavaScript。而相比GWT,使用TeaVM的開發者,可以不須提供已經編譯完成的類別文件。此外,TeaVM也能支援Kotlin、Scala等程式語言。

2. Figma-多功能線上UI協作工具執行速度快三倍

UI新創公司Figma(https://goo.gl/K9Qb4O是一個線上UI設計工具服務,以瀏覽器為基礎環境,來提供線上即時、多人協作的UI設計環境,而且不只有線上版本,還可以能橫跨Windows、Mac及Linux平臺。由於UI設計工作必須經常處理大容量的設計物件,讀取速度對Figma變得至關重要。過去Figma已經導入Asm.js加快檔案讀取速度,現在改用WebAssembly技術後,這套多功能UI設計工具的執行速度又再快上3倍。

3. Google Earth-3D地圖通吃各大瀏覽器,而且執行都順暢

在2017年10月底時,Google也讓Google Earth(https://goo.gl/A5I2ms)搬上Firefox運作,其中關鍵就是WebAssembly。在WebAssembly尚未問世時,讓程式碼能在瀏覽器原生執行的技術除了Asm.js外,還有Google自家的Native Client。而Google選擇後者之下,也讓Google Earth只能在Chrome環境執行。但隨主流瀏覽器相繼支援WebAssembly下,Google Earth團隊也承諾,開始要逐步從Native Client移轉至WebAssembly。

4. Magnum-跨平臺OpenGL圖形引擎搶先支援

Magnum(https://goo.gl/EbK8cb)是一款輕量級的商用遊戲、資料視覺化OpenGL圖形處理引擎,可以支援C++11及C++14,桌面環境一共支援Linux、Windows及Mac,行動環境也支援了iOS、Android,並且整合嵌入式Linux,而在網頁環境則必須透過編譯器Emscripten將程式碼編譯成Asm.js、WebAssembly格式。該工具所支援的圖片API,包含了OpenGL、OpenGL ES及WebGL。

5. Egret Engine-20萬開發者愛用HTM,遊戲引擎快三倍

由中國公司白鷺科技所開發的知名Egret Engine遊戲引擎(https://goo.gl/XXGNfZ),在2017年5月時,宣布開始支援WebAssembly。而利用WebAssembly,Egret Engine可以將HTML5程式碼,編譯為機器碼執行,讓遊戲執行效能提升300%。若使用者瀏覽器不支援WebAssembly,該引擎也會自動轉換成Java版本。中國熱門手機遊戲,如:莽荒紀同名手遊、三生三世十里桃花同名手遊、貓來了、夢道、坦克風雲等都採用Egret Engine,約有20萬HTML 5網頁開發人員採用。

6. Blazor-讓.NET程式碼也能在瀏覽器執行

透過WebAssembly或Asm.js將Mono Runtime編譯處理後,開源UI框架Blazor(https://goo.gl/2ED16j)可以讓.NET程式碼在瀏覽器環境中運作,而習慣ASP.NET Razor語法的開發者,仍可以繼續沿用習慣的開發模式。而Razor會自動偵測開發者的瀏覽器是否支援WebAssembly,如果不支援,該工具也會自動轉換成Asm.js。不過目前該工具仍然屬於實驗階段,尚未支援正式環境的建置、除錯功能。

7. Web-DSP-靠瀏覽器就能即時製作多媒體影音特效

Web-DSP(https://goo.gl/60jkAU)是一款在瀏覽器上執行的多媒體影音處理函式庫,其目標是打造各類基本元件,讓開發者可以在瀏覽器上處理影音等多媒體檔案。而該工具的函式庫是以C++撰寫,並且編譯成WebAssembly執行,藉此讓JavaScript開發者也能使用。而該工具開發者也秀出了使用WebAssembly的影像編輯器,在影像播放的同時,使用者也可以即時選擇套用各項效果,像是負片、灰階、雜訊、銳化等處理。

8. Walt-用JavaScript語法也能快速開發原生飆速應用

目前,在多數網頁開發者尚未熟悉使用Asm.js、WebAssembly技術的情況下,現在也有一款工具Walt(https://goo.gl/NzMcrb),目的是讓網頁開發者可以不用接觸C、C++或是Rust語言,繼續使用JavaScript語法,來打造出接近機器碼的網頁應用。此外Walt也不需要依靠LLVM編譯器或者其他二進位轉換工具,可以直接將程式碼編譯成WebAssembly格式。

原文链接:https://www.ithome.com.tw/news/120813

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 认识 WebAssembly

    自从Brendan Eich用十天时间创造了JavaScript,人们对它的吐槽就从未间断过。众所周知JavaScript是一门动态语言。运行于JavaScri...

    Jean
  • 元编程实现优雅的懒加载

    计算机行业发展了这么多年,出现过无数的专业名词,有的古老名词过时了并被人们淡忘,但有的古老名词不仅没过时,还从本身的狭义概念上升到广义的哲学概念。

    Jean
  • 手写一个http容器【上】决策树与路由表

    如果让我来定义http协议的话,我会给他取一个完全不同的名字:ALFP(Application Layer Fetch Protocol,应用层请求协议)。20...

    Jean
  • Tomcat WebappClassLoader 类加载机制源码分析

    java404
  • 虚拟机类加载机制

    转载请注明原帖地址:http://www.cnblogs.com/dongxiao-yang/p/5369195.html

    sanmutongzi
  • 学界 | AAAI 2018 Oral论文首次提出利用深度增强学习自动解数学题

    AI 科技评论按:增强学习和人类学习的机制非常相近,DeepMind 已经将增强学习应用于 AlphaGo 以及 Atari 游戏等场景当中。作为智能教育领域的...

    AI科技评论
  • HDR的超级碗

    本段采访来自The Video Insiders,受访者是HDR顾问Michael Drazin,他与Fox Sports团队合作,以确保最佳的HDR体验。他们...

    用户1324186
  • 【AAAI Oral】利用深度增强学习自动解数学题,准确率提升15%

    【AI科技大本营导读】增强学习和人类学习的机制非常相近,DeepMind已经将增强学习应用于AlphaGo以及Atari游戏等场景当中。作为智能教育领域的引领者...

    AI科技大本营
  • Spark 性能调优之开发调优

    在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学...

    smartsi
  • 《Kotlin极简教程》第3章 Kotlin语言基础 配图

    一个会写诗的程序员

扫码关注云+社区

领取腾讯云代金券