首页 > 解决方案 > CLR 是否在 JIT 编译期间进行类似数据库的查询?

问题描述

CLR 是否在 JIT 编译之前进行类似数据库的查询?

我正在通过 C#书阅读CLR 。我遇到了TypeDef定义表的描述:

包含模块中定义的每种类型的一个条目。每个条目包括类型的名称、基本类型和标志(公共、私有等),并包含指向它在 MethodDef 表中拥有的方法、它在 FieldDef 表中拥有的字段、它在 PropertyDef 表中拥有的属性的索引,以及它在 EventDef 表中拥有的事件。

索引的存在使我认为在 JIT 编译期间,CLR 将使用TypeDef表中的非聚集索引来快速访问MethodDefFieldDefPropertyDefEventDef中的条目。就像它发生在数据库中一样。即TypeDef中的每个条目包含4 个表(因为非聚集索引是一个表)。

我理解正确还是索引在这里有其他含义?

标签: .netdatabasecompilationclrjit

解决方案


推荐阅读