<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          huatuoUnity 全平臺(tái)原生 c# 熱更方案

          聯(lián)合創(chuàng)作 · 2023-09-27 19:08

           

          huatuo是一個(gè)特性完整、零成本、高性能、低內(nèi)存的 Unity 全平臺(tái)原生 c# 熱更方案。

          huatuo 擴(kuò)充了 il2cpp的代碼,使它由純 AOT runtime 變成 ‘AOT+Interpreter’  混合 runtime,進(jìn)而原生支持動(dòng)態(tài)加載assembly,使得基于 il2cpp backend 打包的游戲不僅能在 Android 平臺(tái),也能在 IOS、Consoles 等限制了 JIT 的平臺(tái)上高效地以 AOT+interpreter 混合模式執(zhí)行,從底層徹底支持了熱更新。

          huatuo 開(kāi)創(chuàng)性地實(shí)現(xiàn)了 differential hybrid dll 技術(shù) ====,可以對(duì) AOT dll 任意增刪改,huatuo 會(huì)智能地讓變化或者新增的類(lèi)和函數(shù)以 interpreter 模式運(yùn)行,但未改動(dòng)的類(lèi)和函數(shù)以 AOT 方式運(yùn)行,讓熱更新的游戲邏輯的運(yùn)行性能基本達(dá)到原生 AOT 的水平。

          特性

          • 特性完整。 近乎完整實(shí)現(xiàn)了 ECMA-335規(guī)范,除了 下文中"限制和注意事項(xiàng)" 之外的特性都支持。
          • 零學(xué)習(xí)和使用成本。 huatuo 將純 AOT runtime 增強(qiáng)為完整的 runtime,使得熱更新代碼與 AOT 代碼無(wú)縫工作。腳本類(lèi)與 AOT 類(lèi)在同一個(gè)運(yùn)行時(shí)內(nèi),可以隨意寫(xiě)繼承、反射、多線程(volatile、ThreadStatic、Task、async)之類(lèi)的代碼。不需要額外寫(xiě)任何特殊代碼、沒(méi)有代碼生成,也沒(méi)有什么特殊限制。
          • 執(zhí)行高效。實(shí)現(xiàn)了一個(gè)極其高效的寄存器解釋器,所有指標(biāo)都大幅優(yōu)于其他熱更新方案。性能測(cè)試報(bào)告
          • 內(nèi)存高效。 熱更新腳本中定義的類(lèi)跟普通 c# 類(lèi)占用一樣的內(nèi)存空間,遠(yuǎn)優(yōu)于其他熱更新方案。內(nèi)存占用報(bào)告
          • 原生支持 hotfix 修復(fù) AOT 部分代碼。幾乎不增加任何開(kāi)發(fā)和運(yùn)行開(kāi)銷(xiāo)。
          • 開(kāi)創(chuàng)性地實(shí)現(xiàn)了 differential hybrid dll 技術(shù)。即可以將某個(gè)熱更新dll先AOT形式打包,后面可以對(duì)該dll任意增刪改,huatuo會(huì)智能地讓變化或者新增的類(lèi)和函數(shù)以interpreter模式運(yùn)行,但未改動(dòng)的類(lèi)和函數(shù)以AOT方式運(yùn)行。這意味著熱更新的游戲邏輯的運(yùn)行性能將接近原生AOT的水平。

          工作原理

          huatuo 從 mono 的 hybrid mode execution 技術(shù)中得到啟發(fā),為 unity 的 il2cpp 之類(lèi)的 AOT runtime 額外提供了interpreter 模塊,將它們由純 AOT 運(yùn)行時(shí)改造為 "AOT + Interpreter" 混合運(yùn)行方式。

          更具體地說(shuō),huatuo做了以下幾點(diǎn)工作:

          • 實(shí)現(xiàn)了一個(gè)高效的元數(shù)據(jù)(dll)解析庫(kù)
          • 改造了元數(shù)據(jù)管理模塊,實(shí)現(xiàn)了元數(shù)據(jù)的動(dòng)態(tài)注冊(cè)
          • 實(shí)現(xiàn)了一個(gè)IL指令集到自定義的寄存器指令集的compiler
          • 實(shí)現(xiàn)了一個(gè)高效的寄存器解釋器
          • 額外提供大量的 instinct 函數(shù),提升解釋器性能
          • 提供 hotfix AOT 的支持

          文檔

          瀏覽 19
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  麻豆熟妇乱妇熟色A片在线看 | 影音先锋看AV | 无码一级日韩免费 | 嫖妓达人金先生 | 国产清清视频 |