-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
walon
committed
Jul 9, 2023
1 parent
e81a742
commit ec4c1de
Showing
7 changed files
with
84 additions
and
724 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,141 +1,13 @@ | ||
# 介绍 | ||
|
||
专业版本提供了一些社区版本所不支持的高级特性,**性价比极高**,适合对内存和包体要求较高的场合,如WebGL游戏。 | ||
|
||
|
||
我们提供多种高端商业版本及可灵活定制的技术服务,满足游戏项目在各种应用场景下的需求。 | ||
## 优势 | ||
|
||
请使用贵公司的**公司邮箱**向邮箱business@code-philosophy.com发起咨询,以QQ或者126邮箱之类发起的邮件会被忽略,敬请谅解。 | ||
|
||
## 商业化版本 | ||
|
||
目前有三个商业化版本:专业版、旗舰版、热重载版,它们的特性如下。 | ||
|
||
|特性|社区版|专业版|旗舰版|热重载版| | ||
|-|-|-|-|-| | ||
|解释执行|✔|✔|✔|✔| | ||
|MonoBehaviour|✔|✔|✔|✔| | ||
|补充元数据|✔|✔|✔|✔| | ||
|完全泛型共享||✔|✔|✔| | ||
|增量式GC||✔|✔|✔| | ||
|DHE技术|||✔|| | ||
|深度指令优化|||✔|| | ||
|代码加固|||✔|| | ||
|热重载||||✔| | ||
|安全沙盒||||✔| | ||
|技术支持|||✔|✔| | ||
|
||
- 专业版 [详细介绍](./pro/intro.md) | ||
- 旗舰版 [详细介绍](./ultimate/intro.md) | ||
- 热重载版本 [详细介绍](./reload/intro.md) | ||
|
||
## 特性 | ||
|
||
### 安全泛型共享 | ||
|
||
安全泛型共享不再需要加载补充元数据dll, 解决了补充元数据技术的缺陷,相比补充元数据技术有几个优点: | ||
|
||
- 不再需要随包携带或者热更新下载补充元数据dll,减少包体和更新时间 | ||
- 不再需要运行时加载补充元数据dll,显著节省内存(一般在几十M量级) | ||
- 不再需要运行时加载补充元数据dll,提高了启动速度 | ||
- 不再需要随包携带或者热更新下载补充元数据dll,简化热更新工作流 | ||
|
||
详细文档请见[AOT泛型](../basic/aotgeneric.md) | ||
|
||
### 增量式GC | ||
|
||
可以开启`use incremental GC`选项,减少full GC带来的卡顿现象。 | ||
|
||
### DHE技术 | ||
|
||
开创性的Differential Hybrid Execution技术。将AOT程序集标记为DHE程序集后,可以对该程序集任意增删改,热更新后会智能地让变化或者新增的类和函数以interpreter模式运行,但未改动的类和函数以AOT方式运行,让游戏逻辑的运行性能基本达到原生AOT的水平。DHE技术极大提升了热更新项目的性能。 | ||
|
||
### 深度指令优化技术 | ||
|
||
深度指令优化技术极大提升了解释模块的性能。对指令进行离线深度优化,提前转换为寄存器指令。优化后的指令整体提升100%-1000%(没看错,10倍以上)甚至更高,尤其是数值指令整体提升近300%。 | ||
|
||
|
||
### 代码加固 | ||
|
||
深度指令技术将IL指令提前转换为寄存器指令,天然抗ILSpy之类的反编译工具破解和跟踪,更安全可靠。 | ||
|
||
### 安全沙盒 | ||
|
||
支持限制热更新部分可调用的函数集合,非常适合有UGC代码情况,避免玩家提交的恶意代码执行危害App安全的操作。 | ||
|
||
### 技术支持 | ||
|
||
旗舰版和热重载版本各附带一年(或更多)的技术支持。 | ||
|
||
## 旗舰版 | ||
|
||
旗舰版主要面向有严格性能要求的项目。旗舰版相对社区版在性能方面有巨幅提升,基本达到原生性能水平,同时完全泛型共享技术让工作流、包体和内存占用得到显著优化,是大型或性能要求严苛的项目的最佳选择。 | ||
`深度指令优化技术`由于提前对原始指令作了转换,dll文件中并不包含原始IL指令,天然抗反编译破解,更安全可靠! | ||
|
||
|
||
旗舰版本当前已被商业项目线上验证过,达到了较高的稳定性水平,可以放心使用。以下是一些上线项目列表: | ||
|
||
- **奇葩战斗家**, 来自雷霆游戏。[iOS](https://apps.apple.com/cn/app/%E5%A5%87%E8%91%A9%E6%88%98%E6%96%97%E5%AE%B6/id1434798394) 11w评论,[taptap](https://www.taptap.cn/app/45981?utm_medium=seo&utm_source=google) 上有169万关注和357万下载。 | ||
|
||
旗舰版的优势: | ||
|
||
- 包含独创的`DHE`技术,未变化部分代码性能与原生完全相同,相较社区版本纯解释方式提升惊人的**3-30**倍甚至更高,整体**几乎达到**原生性能水平。 | ||
- 支持Unity 2021起的il2cpp的`full generic sharing`技术,值类型也可以泛型共享了,以原生方式执行AOT泛型函数,极大提升了泛型函数的执行性能。不再需要对AOT进行补充元数据,简化了工作流,并且有效降低包体大小,明显降低了内存占用。对WebGL等包体和内存要求严苛的平台尤其有用。 | ||
- **支持增量式GC** | ||
- 将于2023.7支持 **深度指令优化技术**,对指令进行深度优化,解释性能整体提升100%-1000%(没看错,10倍以上)甚至更高,对于数值指令整体提升近300%,同时有更优异的加载性能。 | ||
- 支持对dll代码混淆,天然抗反编译破解。 | ||
- 优化加载及运行过程中元数据分配,更节省内存 | ||
- 优化加载及运行过程中元数据分配,内存占用更小 | ||
- 更敏捷的维护支持,随时获得最新的代码(社区版本出于维护成本考虑,只会定期发布版本)。 | ||
- 原生代码已全部在包体中,被各大AppStore拒审的风险大幅降低。 | ||
- 附含一年的技术支持,快速解决使用过程中遇到的各种问题。 | ||
|
||
|
||
以下是旗舰版本相比于社区版本的解释性能提升数据。注意,只有变化代码才会走解释,如果未改动,两者的性能和原生是一样的。 | ||
|
||
![interpreter_optimization](/img/hybridclr/interpreter_optimization.jpg) | ||
|
||
以下是数值计算方面原生与旗舰版本的解释性能对比,加法大约为7-16倍左右,乘法是4倍,除法是2倍。注意,只有变化代码才会走解释,如果未改动,性能和原生是一样的。 | ||
|
||
![benchmark_numeric](/img/hybridclr/benchmark_numeric.jpg) | ||
|
||
|
||
## 专业版本 | ||
|
||
提供了一些社区版本所不支持的高级特性,**性价比极高**。 | ||
|
||
版本优势: | ||
|
||
- 支持Unity 2021起的il2cpp的`full generic sharing`技术,值类型也可以泛型共享了,以原生方式执行AOT泛型函数,极大提升了泛型函数的执行性能。不再需要对AOT进行补充元数据,简化了工作流,并且有效降低包体大小,明显降低了内存占用。对WebGL等包体和内存要求严苛的平台尤其有用。 | ||
- **支持增量式GC** | ||
- 优化加载及运行过程中元数据分配,更节省内存 | ||
- 更敏捷的维护支持,随时获得最新的代码(社区版本出于维护成本考虑,只会定期发布版本)。 | ||
|
||
## HotReload特别版 | ||
|
||
HotReload特别版提供独创的`热重载技术`的支持。可以运行中完全卸载或者重新加载一个assembly,尤其适用于小游戏合集类型的游戏。 | ||
|
||
版本优势: | ||
|
||
- 支持Unity 2021起的il2cpp的`full generic sharing`技术,值类型也可以泛型共享了。不再需要对AOT进行补充元数据,简化了工作流,并且有效降低包体大小,明显降低了内存占用。对WebGL等包体和内存要求严苛的平台尤其有用。 | ||
- **支持增量式GC** | ||
- 支持卸载单独的assembly,卸载大部分内存(预计90%以上),但有少量残留(如`[ThreadStatic]`标记的线程静态成员字段占据的内存) | ||
- 支持重新加载assembly,代码基本可以任意变化甚至完全不同(除MonoBehaviour类外)。MonoBehaviour及ScriptableObject的热重载。 | ||
- 支持**限定热更新assembly中能访问的函数的集合**,适合UGC游戏中创建沙盒环境,避免恶意玩家代码造成破坏。 | ||
- 更敏捷的维护支持,随时获得最新的代码(社区版本出于维护成本考虑,只会定期发布版本)。 | ||
|
||
|
||
|
||
## 企业技术支持 | ||
|
||
可以灵活选择企业所需要的技术服务项目,如果按年订阅则根据服务项计费,否则根据服务时长计费。 | ||
|
||
- 对Android64、iOS64平台的技术支持(其他服务均只针对这些平台) | ||
- 对Android32、**WebGL(含MiniGame、微信小游戏)**、Win64、MacOS平台的技术支持 | ||
- 移植对Linux、Switch等未支持平台的支持 | ||
- Bug标准响应及解决,包含一对一远程协助指导,大多数可复现bug会在2-7天内修复或者提供规避方案 | ||
- 对2019.4.x等已经过期的LTS版本的bug修复支持 | ||
- 移植非标准支持范围内小版本的技术指导,例如指导支持2022.2.4版本。 | ||
- **提前获得Unity2023系列预览版本的支持** | ||
- 提前获得社区版本暂未跟进的LTS小版本的支持 | ||
- 对.net standard 2.0及2.1的支持 | ||
- 优化指导 | ||
- 其他特殊的定制服务 |
Oops, something went wrong.