码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 一个近乎完美的Unity全平台原生c#热更方案


    今天给大家推荐一个近乎完美的Unity全平台原生c#热更方案,相对比其他方案,此方案学习成本更低、完全支持c#所有特性、兼容性极高、占用内存低、执行小高。

    项目简介

    HybridCLR是一个特性完整、零成本、高性能、低内存的近乎完美的Unity全平台原生c#热更方案。

    HybridCLR扩充了il2cpp的代码,使它由纯AOT runtime变成‘AOT+Interpreter’ 混合runtime,进而原生支持动态加载assembly,使得基于il2cpp backend打包的游戏不仅能在Android平台,也能在IOS、Consoles等限制了JIT的平台上高效地以AOT+interpreter混合模式执行。从底层彻底支持了热更新。

    项目特点

    • 特性完整。近乎完整实现了ECMA-335规范,除了 下文中"限制和注意事项" 之外的特性都支持。

    • 零学习和使用成本。HybridCLR将纯AOT runtime增强为完整的runtime,使得热更新代码与AOT代码无缝工作。脚本类与AOT类在同一个运行时内,可以随意写继承、反射、多线程(volatile、ThreadStatic、Task、async)之类的代码。不需要额外写任何特殊代码、没有代码生成,也没有什么特殊限制。

    • 执行高效。实现了一个极其高效的寄存器解释器,所有指标都大幅优于其他热更新方案。性能测试报告

    • 内存高效。热更新脚本中定义的类跟普通c#类占用一样的内存空间,远优于其他热更新方案。内存占用报告

    • 原生支持hotfix修复AOT部分代码。几乎不增加任何开发和运行开销。

    • 兼容性:支持所有il2cpp支持的平台。

    • 稳定性:目前已经接入上百个大中小商业游戏项目。

    工作原理

    HybridCLR从mono的hybrid mode execution技术中得到启发,为unity的il2cpp之类的AOT runtime额外提供了interpreter模块,将它们由纯AOT运行时改造为"AOT + Interpreter"混合运行方式。

    图片

    更具体地说,HybridCLR做了以下几点工作:

    • 实现了一个高效的元数据(dll)解析库

    • 改造了元数据管理模块,实现了元数据的动态注册

    • 实现了一个IL指令集到自定义的寄存器指令集的compiler

    • 实现了一个高效的寄存器解释器

    • 额外提供大量的instinct函数,提升解释器性能

    • 提供hotfix AOT的支持

    项目地址:https://github.com/focus-creative-games/hybridclr

    - End -

     

  • 相关阅读:
    行为型模式 - 访问者模式Visitor
    粒子群算法(PSO)优化双向长短期记忆神经网络的数据分类预测,PSO-BiLSTM分类预测,多输入单输出模型
    微软推出统一 Copilot AI 助手;谷歌拟自主研发 AI 芯片;苹果拟在国内引进新的 OLED 供应商丨RTE开发者日报 Vol.55
    ICC2:Design Planning(03)Power Network Synthesis
    Cognos Analytics教程之为什么我喜欢 Cognos Analytics:IBM Cognos Analytics 的 15 个特性
    深度解析“链动2+1”模式的商业逻辑
    【C++】类和对象 从入门到超神 (上)
    conan 入门指南
    【C++】C++11之右值引用
    2022年0701-Com.Java.Basis第五课《针对流程控制的语句练习题》
  • 原文地址:https://blog.csdn.net/daremeself/article/details/126857343
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号