一个近乎完美的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 -
一个近乎完美的Unity全平台原生c#热更方案相关推荐
- 一个近乎完美的 Unity 全平台热更方案
[公众号回复 "1024",免费领取程序员赚钱实操经验] 大家好,我是章鱼猫. 今天推荐的这个项目是「HybridCLR」,是一个特性完整.零成本.高性能.低内存的近乎完美的 Un ...
- bat比较有意思的代码_腾讯开源的 Unity全系列 代码逻辑热修复方案--InjectFix
InjectFix 腾讯开源的 Unity 代码逻辑热修复方案 Unity代码逻辑热修复 可用于Unity业务的bug修复,支持Unity全系列,全平台. 几个亮点 直接在Unity工程上修改C#即可 ...
- Java和U3D比较,Unity热更方案 ILRuntime 和 toLua的比较
前言 目前市面上流行的热更方案就是lua系列和ILRuntime,选取哪一种需要根据自己的项目进行比对. 无论是ILRuntime还是toLua都是市面上有在用到的热更方案.直观上来讲,都可以通过把代 ...
- unity python做热更_[专栏作家]基于ILRuntime的完整C#热更方案
原标题:[专栏作家]基于ILRuntime的完整C#热更方案 好久不见.最近一段时间公司二次创业,实在是忙的脚打后脑勺,有段时间没来跟大家分享心得了,昨天终于有了一个初步的完结,也终于有时间和精力跟大 ...
- 一个近乎完美基于Dubbo的微服务改造实践
网易考拉(以下简称考拉)是网易旗下以跨境业务为主的综合型电商,自 2015 年 1 月 9 日上线公测后,业务保持了高速增长,这背后离不开其技术团队的支撑. 微服务化是电商 IT 架构演化的必然趋势, ...
- 人工智能,丹青圣手,全平台(原生/Docker)构建Stable-Diffusion-Webui的AI绘画库教程(Python3.10/Pytorch1.13.0)
世间无限丹青手,遇上AI画不成.最近一段时间,可能所有人类画师都得发出一句"既生瑜,何生亮"的感叹,因为AI 绘画通用算法Stable Diffusion已然超神,无需美术基础,也 ...
- Unity可用的热更新方案
C#热更方案 ILRuntime ILRuntime项目为基于C#的平台(例如Unity)提供了一个纯C#实现,快速.方便且可靠的IL运行时,使得能够在不支持JIT的硬件环境(如iOS)能够实现代码的 ...
- Unity 热更新方案之——ILRuntime
文章目录 前言 一.ILRuntime是什么? 二.ILRuntime使用 1.跨域委托 2.跨域继承 3.CLR绑定与重定向 前言 做游戏离不开热更新,目前市面上热更新方案用的比较多的是Lua(XL ...
- unity menuitem_Unity热更_打AssetBundles包
Unity热更_打AssetBundles包 Unity开发离不了热更新,现在市面上有很多的热更方案,XLua.ToLua以及C#热更方案ILRuntime,以腾讯的XLua为例,若要实现热更新,As ...
最新文章
- java事件驱动模型_Spring事件驱动模型详解
- AI落地虽千万难,智能语音往矣 | CCF-GAIR 2020
- Python基础数据之列表
- B1928 日期差值
- Android 8.0 学习(13)---开发者 FAQ
- Android 系统性能优化(23)---绘制性能优化
- 【数论Day1】 最大公约数(gcd)题目
- 我有一个朋友毕业后一直在腾讯
- tensorflow - model.predict
- 关系分析可视化插件-Cytoscape
- AttributeError: module 'torch._C' has no attribute '_cuda_setDevice'(在python命令后面加上 --gpu_ids -1)
- linux中的各种$号 位置参数变量
- 企业 IT 架构转型之道:阿里巴巴中台战略思想与架构实战
- 【模拟电子技术Analog Electronics Technology 14】——集成运放中的单元电路 之 集成运放的输入级:长尾式差放各种接法的参数分析
- GCC源码分析(摘)
- 柳传志:想过得富有光鲜就要知道为啥穷
- 阿里云ECS服务器内存一直居高不下,被挂木马解决方法
- execute,executeQuery,executeUpdate三个方法有什么区别呢?
- Python抓取糗事百科成人版图片
- BFS算法 蓝桥杯长草问题
热门文章
- jQuery UI 实例 - 滑块(Slider)
- 周信东c语言实验二实验报告,实验三 循环结构程序设计参考答案
- Premiere Pro 2022带来离线语音转文本教程
- 2020十大黄金配资交易平台排名
- 如何在CSDN博客中上传图片
- R 加权最小二乘 代码_如何用EXCEL的规划求解功能优化投资组合的阿尔法值(最小二乘估计法)?...
- android如何基于父布局,如何根据父视图的尺寸调整Android视图的大小
- 大数据现象是怎么形成的?
- 高通MSM8998 ABL的调试
- 选址|如何开一家咖啡店?店铺租金多少合适?