为什么 CLR 会为每个方法分配一个包含一个条目的内部结构

问题描述

我正在通过 C# 阅读 CLR 一书,下面是第一次调用方法时发生的情况的描述:

enter image description here

就在 Main 方法执行之前,CLR 检测所有引用的类型 主要代码。这会导致 CLR 分配一个内部数据结构,用于管理对引用类型的访问。在图 1-4 中,Main 方法引用单一类型 Console,导致 CLR 分配单一内部结构。此内部数据结构包含由 Console 类型定义的每个方法的条目。每个条目都包含可以找到方法实现的地址。初始化此结构时,CLR 将每个条目设置为包含在 CLR 本身内部的未记录的内部函数。我称这个函数为 JITCompiler。

我不明白为什么CLR会为每个方法分配一个包含一个条目的内部结构,想象一个类型有100个方法而我只使用一个方法,那么CLR会为100个方法分配一个包含100个条目的结构,是不是很没效率?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)