今天给大家推荐一个近乎完美的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 -

一个近乎完美的Unity全平台原生c#热更方案相关推荐

  1. 一个近乎完美的 Unity 全平台热更方案

    [公众号回复 "1024",免费领取程序员赚钱实操经验] 大家好,我是章鱼猫. 今天推荐的这个项目是「HybridCLR」,是一个特性完整.零成本.高性能.低内存的近乎完美的 Un ...

  2. bat比较有意思的代码_腾讯开源的 Unity全系列 代码逻辑热修复方案--InjectFix

    InjectFix 腾讯开源的 Unity 代码逻辑热修复方案 Unity代码逻辑热修复 可用于Unity业务的bug修复,支持Unity全系列,全平台. 几个亮点 直接在Unity工程上修改C#即可 ...

  3. Java和U3D比较,Unity热更方案 ILRuntime 和 toLua的比较

    前言 目前市面上流行的热更方案就是lua系列和ILRuntime,选取哪一种需要根据自己的项目进行比对. 无论是ILRuntime还是toLua都是市面上有在用到的热更方案.直观上来讲,都可以通过把代 ...

  4. unity python做热更_[专栏作家]基于ILRuntime的完整C#热更方案

    原标题:[专栏作家]基于ILRuntime的完整C#热更方案 好久不见.最近一段时间公司二次创业,实在是忙的脚打后脑勺,有段时间没来跟大家分享心得了,昨天终于有了一个初步的完结,也终于有时间和精力跟大 ...

  5. 一个近乎完美基于Dubbo的微服务改造实践

    网易考拉(以下简称考拉)是网易旗下以跨境业务为主的综合型电商,自 2015 年 1 月 9 日上线公测后,业务保持了高速增长,这背后离不开其技术团队的支撑. 微服务化是电商 IT 架构演化的必然趋势, ...

  6. 人工智能,丹青圣手,全平台(原生/Docker)构建Stable-Diffusion-Webui的AI绘画库教程(Python3.10/Pytorch1.13.0)

    世间无限丹青手,遇上AI画不成.最近一段时间,可能所有人类画师都得发出一句"既生瑜,何生亮"的感叹,因为AI 绘画通用算法Stable Diffusion已然超神,无需美术基础,也 ...

  7. Unity可用的热更新方案

    C#热更方案 ILRuntime ILRuntime项目为基于C#的平台(例如Unity)提供了一个纯C#实现,快速.方便且可靠的IL运行时,使得能够在不支持JIT的硬件环境(如iOS)能够实现代码的 ...

  8. Unity 热更新方案之——ILRuntime

    文章目录 前言 一.ILRuntime是什么? 二.ILRuntime使用 1.跨域委托 2.跨域继承 3.CLR绑定与重定向 前言 做游戏离不开热更新,目前市面上热更新方案用的比较多的是Lua(XL ...

  9. unity menuitem_Unity热更_打AssetBundles包

    Unity热更_打AssetBundles包 Unity开发离不了热更新,现在市面上有很多的热更方案,XLua.ToLua以及C#热更方案ILRuntime,以腾讯的XLua为例,若要实现热更新,As ...

最新文章

  1. java事件驱动模型_Spring事件驱动模型详解
  2. AI落地虽千万难,智能语音往矣 | CCF-GAIR 2020
  3. Python基础数据之列表
  4. B1928 日期差值
  5. Android 8.0 学习(13)---开发者 FAQ
  6. Android 系统性能优化(23)---绘制性能优化
  7. 【数论Day1】 最大公约数(gcd)题目
  8. 我有一个朋友毕业后一直在腾讯
  9. tensorflow - model.predict
  10. 关系分析可视化插件-Cytoscape
  11. AttributeError: module 'torch._C' has no attribute '_cuda_setDevice'(在python命令后面加上 --gpu_ids -1)
  12. linux中的各种$号 位置参数变量
  13. 企业 IT 架构转型之道:阿里巴巴中台战略思想与架构实战
  14. 【模拟电子技术Analog Electronics Technology 14】——集成运放中的单元电路 之 集成运放的输入级:长尾式差放各种接法的参数分析
  15. GCC源码分析(摘)
  16. 柳传志:想过得富有光鲜就要知道为啥穷
  17. 阿里云ECS服务器内存一直居高不下,被挂木马解决方法
  18. execute,executeQuery,executeUpdate三个方法有什么区别呢?
  19. Python抓取糗事百科成人版图片
  20. BFS算法 蓝桥杯长草问题

热门文章

  1. jQuery UI 实例 - 滑块(Slider)
  2. 周信东c语言实验二实验报告,实验三 循环结构程序设计参考答案
  3. Premiere Pro 2022带来离线语音转文本教程
  4. 2020十大黄金配资交易平台排名
  5. 如何在CSDN博客中上传图片
  6. R 加权最小二乘 代码_如何用EXCEL的规划求解功能优化投资组合的阿尔法值(最小二乘估计法)?...
  7. android如何基于父布局,如何根据父视图的尺寸调整Android视图的大小
  8. 大数据现象是怎么形成的?
  9. 高通MSM8998 ABL的调试
  10. 选址|如何开一家咖啡店?店铺租金多少合适?