亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

整理 | 太冷不穿格子衫 

出品 | 51CTO技術(shù)棧(微信號:blog51cto)

早在 2017 年,主流瀏覽器都已經(jīng)支持 WebAssembly。隨著 WebAssembly 的蓬勃發(fā)展,各種編程語言也在增加對它的支持。2021 年,WebAssembly 開源項目開始支持 WasmGC(垃圾回收),為實現(xiàn) WebAssembly 支持像 JAVA、Kotlin 這樣的前端語言做準(zhǔn)備。同年,Kotlin 程序語言開發(fā)團隊更新了發(fā)展路線,其中的一個重點就是增加 WebAssembly 支持。

近日,谷歌在Chrome中啟用了WebAssembly的垃圾回收功能,這一舉動很可能成為一個風(fēng)向標(biāo),引領(lǐng)更多 Web 開發(fā)人員使用WasmGC。

WasmGC 到底有多厲害?能讓連續(xù) 11 年被評為最流行開發(fā)語言的 JavaScript “地位不保”?WebAssembly 允許開發(fā)人員使用 JavaScript 以外的高性能編程語言來開發(fā) Web 應(yīng)用程序。Wasm 中的垃圾回收功能更是“錦上添花”,可以讓虛擬機自動管理內(nèi)存,一定程度上減輕了開發(fā)人員的負擔(dān),讓他們更加專注于 Web 應(yīng)用程序核心功能的開發(fā)。

軟件開發(fā)人員Eloff在X上發(fā)帖稱:“WebAssembly GC意義非凡,可以脫離 Web 端,在搭載了不同硬件和操作系統(tǒng)的各個平臺運行,真正實現(xiàn)了“一次編譯,多處運行”。

1、WasmGC 到底有多厲害

將語言移植到新的體系結(jié)構(gòu)通常需要重新編譯 VM,作為一項新技術(shù),WasmGC 允許開發(fā)人員定義結(jié)構(gòu)體和數(shù)組類型并執(zhí)行操作,例如創(chuàng)建它們的實例、讀取和寫入字段、在類型之間進行轉(zhuǎn)換等。

這些對象由 Wasm VM 自己的 GC 實現(xiàn)來管理,這是該方法與傳統(tǒng)移植方法之間的主要區(qū)別。如果傳統(tǒng)的移植方法是將一種語言移植到一種架構(gòu),那么 WasmGC 方法與如何將一種語言移植到一個虛擬機非常相似。例如,如果你想將 Java 移植到 JavaScript,那么可以使用像 J2CL 這樣的編譯器,它將 Java 對象表示為 JavaScript 對象,然后這些 JavaScript 對象就像所有其他對象一樣由 JavaScript VM 管理。

WasmGC 比傳統(tǒng)的 WasmMVP 移植優(yōu)先級更高,并能夠與目標(biāo) VM 進行更緊密的集成。WasmGC 與之前編譯為線性內(nèi)存的方法 (WasmMVP) 相比,可以實現(xiàn)更好的優(yōu)化:

  • 在編譯時和運行時進行優(yōu)化,例如間接調(diào)用的推測內(nèi)聯(lián)。性能測量結(jié)果表明,推測性內(nèi)聯(lián)可使編譯后的 Java 代碼顯著提速 30%。
  • WasmGC 比 WasmMVP 更可優(yōu)化,因為它在更高級別上運行,跟蹤對象引用。
  • 雖然 WasmGC 可能需要在某些語言的語義上做出妥協(xié),但它可以提供更小的代碼大小和更好的性能等好處。

2、JavaScript“地位不保”

在 WebAssembly 出現(xiàn)之前,JavaScript 是少數(shù)可用于開發(fā) Web 應(yīng)用程序的編程語言之一,擁有超過63%的用戶,它是現(xiàn)代 Web 開發(fā)的基礎(chǔ),提供了易用性、廣泛的支持以及與瀏覽器 DOM 的無縫集成。但它并非那么完美,尤其在應(yīng)對復(fù)雜程序的開發(fā)時,會顯得有點“力不從心”。

HackerNews 上的一位用戶表示:“JavaScript 似乎不再是唯一的’寵兒‘了。”

這種說法不無道理。畢竟在 Web 開發(fā)過程中,無論是性能還是速度,WasmGC 都明顯略勝一籌。

首先,與 JavaScript 相比,Wasm 由 C 和 C++等語言編譯而來,使得它的執(zhí)行速度更快;其次,WebAssembly 對于各種平臺有很強的適應(yīng)性,確保了它的可移植性;此外,WebAssembly 中的沙盒環(huán)境通過將其與其他瀏覽器組件隔離來提高安全性,彌補了 JavaScript 有潛在安全隱患的短板。

WebAssembly 的垃圾回收功能是在 2017 年提出的。然而,大部分工作是在過去三年完成的。隨著越來越多的用戶使用 WebAssembly ,Chrome、Edge 和 Firefox 都將 WebAssembly 作為默認選項。

與 JavaScript 不同,Wasm 代碼可以針對各種硬件架構(gòu)進行編譯,從而確保了跨不同設(shè)備和平臺的可移植性。此外,它支持多種編程語言,允許它們之間進行無縫交互。

Wasm 主要在沙盒環(huán)境中執(zhí)行,這樣就與主瀏覽器線程隔離開來,通過限制對系統(tǒng)資源的未經(jīng)授權(quán)的訪問來提高安全性。這是兩種語言之間的主要區(qū)別。而且大多數(shù)網(wǎng)絡(luò)攻擊都發(fā)生在瀏覽器上,Wasm 也更具安全優(yōu)勢。Wasm 代碼還通過不可讀的隱蔽性提高了安全性,這使得攻擊者更難以對代碼進行逆向工程,從而更難以發(fā)現(xiàn)和利用漏洞。

JupiterOne首席信息安全官Sounil Yu表示:“Wasm的指令集有限,而且有更好的內(nèi)存管理,這有助于減少漏洞,比如緩沖區(qū)溢出。”

2022 年的調(diào)查表明,67% 的受訪者經(jīng)常使用 WebAssembly,相比 2021 年的 47% 有了大幅提升。如今,WebAssembly 主要用于構(gòu)建流量最大的站點,WasmGC 的出現(xiàn)無疑會推動WebAssembly 的普及和發(fā)展。

參考鏈接:

https://analyticsindiamag.com/how-wasmgc-will-change-the-developer-experience/

https://zhuanlan.zhihu.com/p/606835492

https://zhuanlan.zhihu.com/p/665119591

分享到:
標(biāo)簽:JavaScript
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定