Skip to main content
Version: Next

Introduction

The Ultimate version is primarily aimed at projects with strict performance requirements. The Ultimate version has tremendous performance improvements compared to the community version, almost (100% when unchanged) reaching native performance levels, while also having good optimizations in terms of security and memory.

Supported Versions

Supports all Unity 2019-6000 LTS versions.

Advantages

  • Includes all features of the Professional version
  • Includes the unique DHE technology, where unchanged code sections perform identically to native code, providing an amazing 3-30 times or even higher performance improvement compared to the community version's pure interpretation approach, achieving almost native performance levels overall
  • Supports multi-main package iterative updates. Multiple main packages (v1, v2, ..., vn) can exist simultaneously, all loading the same latest version of hot update code, with newer main packages having better performance.

Predictable Effects

The effects of DHE technology are predictable. You can basically know the final effect without actually running DHE.

Before hot updates occur, performance is identical to native. After hot updates occur, changed functions are executed interpretively at the function granularity. When generating dhao files, all changed functions are also printed out. Therefore, developers can estimate in advance which functions' performance will be affected by hot update behavior.

Differences from Solutions like injectfix

Overall, the Ultimate version meets the needs of projects that want both arbitrary logic hot updates and native performance, while injectfix can basically only be used to fix function bugs - there's a world of difference between them. Specific differences are as follows:

SolutionUltimate Versioninjectfix
Code Change RestrictionsCan change arbitrarilyOnly supports fixing functions and adding code in very small scope (due to many unsupported features and bugs)
Supported C# FeaturesInherits the characteristics of the community version with almost no code restrictionsMany missing features, with significant restrictions or complete inability to work properly for type inheritance, delegates, generics, reflection, multithreading, async (essentially similar defects to ILRuntime)
PerformanceUnchanged functions same as AOT, changed ones use interpretation but with extremely efficient interpretation performance (average performance more than 10 times that of injectfix)Unchanged functions have some performance degradation even when not modified due to instrumentation. Additionally, interpreter performance is extremely inefficient
GCIdentical to nativeHas significant additional GC
WorkflowAutomatic marking, one-click completion, no manual intervention requiredManual marking, time-consuming, error-prone, multi-version maintenance is a disaster
Stability LevelVerified by numerous projects, extremely high stabilityMany unsupported features and bugs