跳到主要内容

AOT 概述

什么是 LeanAOT

LeanAOT 是 LeanCLR 的 Ahead-of-Time 编译器,将托管程序集(.dll)翻译为 C++ 源码,概念上类似 IL2CPP。

输入输出
一个或多个托管程序集*.method_body_partN.cpp、模块注册代码、modules_registration.cpp

生成代码与 LeanCLR 运行时链接后,已 AOT 的方法以原生速度执行;未 AOT 的方法由 IR 解释器 执行。

典型使用场景

  • 原生 / WASM 嵌入:将热点 C# 编译进最终二进制
  • Unity WebGL / 小游戏:由 leanclr-unity 在构建管线中自动调用
  • 包体优化:配合 aot.xmlpgo-aot.xml 控制 AOT 范围

社区版与商业版

LeanAOT 提供 社区版商业版,在可 AOT 的语言特性范围与优化深度上不同。详见 社区版与商业版

与 link.xml 的关系

aot.xml / pgo-aot.xml 仅由 LeanAOT 消费,与 Unity link.xml(托管裁剪)无关。两者可同时使用,互不影响。

文档导航

主题文档
工具构建与基本用法LeanAOT 工具
IL → C++ → 链接 → 注册AOT 工作流
手工规则 aot.xmlAOT 规则文件
热点优化 pgo-aot.xmlProfile Guided AOT
命令行与环境变量CLI 参考

执行模型回顾

更多架构背景见 架构概览