程式語言Ruby聖誕更新,3.2.0開始支援WebAssembly

程式語言Ruby依照慣例在聖誕節推出更新,最新的加入基於WASI的WebAssembly支援,擴大Ruby可以運作的平臺,而程序內JIT編譯器YJIT經過一年測試,現在正式成為生產就緒的功能,另外,Ruby 3.2.0改進正規表示式功能,使應用程式更能夠抵抗正規表示式DoS攻擊(ReDoS)。

Ruby 3.2.0透過WASI提供WebAssembly支援,這使得CRuby二進位檔案將可以在網頁瀏覽器、無伺服器邊緣或其他類型的WebAssembly/WASI嵌入器中運作。官方提到,這項功能將鼓勵開發人員在WebAssembly環境使用CRuby,其中一個使用案例便是TryRuby互動編輯器對CRuby支援,開發者已經可以在網頁瀏覽器用到原汁原味的Ruby。

WebAssembly最初的發展用途,是要作為網頁應用程式安全且高效的開發語言,但由於一般應用程式也有高效且安全的需求,所以WASI(WebAssembly System Interface)便誕生,讓WebAssembly應用程式在沒有系統介面的虛擬機,也能夠與作業系統通訊,而Ruby提供WebAssembly/WASI支援,使開發人員能夠使用Ruby,開發可在WebAssembly環境中運作的應用程式。

官方提到,因為WASI與WebAssembly還在發展,同時也基於部分安全理由,因此缺少一些能夠實作Fiber、異常處理和垃圾回收的功能。所以CRuby透過二進位轉換技術Asyncify,控制使用者空間的執行,彌補功能空缺。

另外,Ruby還在WASI上建構了虛擬檔案系統,使開發者可以更簡單地將Ruby應用程式打包成.wasm檔案,簡化Ruby應用程式的發布。

網頁設計最專業,超強功能平台可客製,窩窩以「數位行銷」「品牌經營」「網站與應用程式」「印刷品設計」等四大主軸,為每一位客戶客製建立行銷脈絡及洞燭市場先機,請問台中電動車哪裡在賣比較便宜可以到台中景泰電動車門市去看看總店:臺中市潭子區潭秀里雅潭路一段102-1號。電動車補助推薦評價好的iphone維修中心擁有專業的維修技術團隊,同時聘請資深iphone手機維修專家,現場說明手機問題,快速修理,沒修好不收錢住家的頂樓裝太陽光電聽說可發揮隔熱功效一線推薦東陽能源擁有核心技術、產品研發、系統規劃設置、專業團隊的太陽能發電廠商。網頁設計一頭霧水該從何著手呢? 回頭車貨運收費標準宇安交通關係企業,自成立迄今,即秉持著「以誠待人」、「以實處事」的企業信念台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!還在煩惱搬家費用要多少哪?台中大展搬家線上試算搬家費用,從此不再擔心「物品怎麼計費」、「多少車才能裝完」台中搬家公司費用怎麼算?擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司好山好水露營車漫遊體驗露營車x公路旅行的十一個出遊特色。走到哪、玩到哪,彈性的出遊方案,行程跟出發地也可客製,產品缺大量曝光嗎?你需要的是一流包裝設計Google地圖已可更新顯示潭子電動車充電站設置地點!!廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

Ruby 3.1.0所加入的程序內JIT編譯器YJIT,經過一年的測試,官方認為已經足夠穩定,因此在Ruby 3.2.0轉變成為正式功能。YJIT主要源自於Shopify,用於改善Ruby on Rails應用程式的技術,當初Ruby 2.6加入了MJIT(Method-based JIT)編譯器,希望能達到Ruby 3的速度是Ruby 2三倍的目標,但因為MJIT的諸多限制,再加上MJIT沒有針對Rails這類需要大量呼叫方法的工作負載最佳化,導致實際應用程式無法獲得MJIT的加速。

而YJIT是重新建構的JIT編譯器,與現有Ruby程式碼幾乎完全相容,具有高速預熱和效能提升等優點,在許多測試基準都有不少的速度提升。

Ruby 3.2.0所帶來的正式版YJIT擁有多項功能改進,現在YJIT可以支援Linux、MacOS、BSD和其他UNIX平臺上的x86-64和arm64/aarch64 CPU,這個版本可以被用於Apple M1/M2、AWS Graviton、Raspberry Pi 4環境,而Ruby 3.2.0的YJIT也比Ruby 3.1.0更快,記憶體使用量大概只有測試版本的三分之一。整體而言,以yjit-bench基準進行測試,YJIT比Ruby直譯器還要快41%。

開發團隊在Ruby 3.2.0針對ReDoS加入緩解措施。因為正規表示式比對可能花費超過預期的時間,當應用程式能夠接受不受信任的輸入,用於低效能的正規表示式比對,攻擊者便有機會加以利用,進行有效的DoS攻擊。

而Ruby 3.2.0的正規表示式比對演算法使用記憶化(Memoization)技術,因此效能獲得改進,90%的比對都可以在線性時間內完成,除此之外,開發者現在也可以利用正規表示式逾時功能,限制正規表示式的執行時間,以緩解正規表示式DoS攻擊。

https://www.ithome.com.tw/news/154901

您可能也會喜歡…