- 1
- 0
- 约6.77千字
- 约 10页
- 2026-11-16 发布于河北
- 举报
.NET架构师面试题(含详细参考答案)
适用岗位:.NET架构师、高级系统架构工程师,覆盖框架原理、分布式、性能、设计、运维落地等方向
一、基础与CLR相关
1.简述CLR的核心组成,以及JIT编译的工作流程,对比AOT编译的适用场景
参考答案:
CLR核心包含几个模块:基类库、JIT编译器、垃圾回收器、类型验证器、线程调度与异常处理模块。
JIT属于即时编译,程序运行到对应方法时,才把IL中间代码编译成当前CPU架构的原生机器码,编译结果会缓存到内存,进程重启后缓存丢失。流程大致是:加载程序集→读取元数据与IL→类型安全校验→JIT编译为本机指令→CPU执行。
AOT是提前编译,在发布阶段直接把IL预编译成目标平台原生二进制,运行阶段不再做编译。
JIT优势:跨平台、启动前编译,可基于运行时采集的信息做分层编译优化;缺点是冷启动慢,首次执行方法有编译开销。
AOT优势:启动速度快、运行时无JIT开销、可以裁剪运行时,适合容器短生命周期服务、桌面客户端、嵌入式场景;缺点:编译产物大、跨平台需要多平台编译包、运行时无法动态生成代码,反射、动态Emit很多场景受限。
2.解释值类型与引用类型在内存上的区别,说明装箱、拆箱过程以及带来的性能损耗
参考答案:
值类型默认分配在栈上(struct、基础数值类型、bo
原创力文档

文档评论(0)