微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决为什么 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 举报,一经查实,本站将立刻删除。