C#.其中struct方法代码保存在内存中?

C#.其中struct方法代码保存在内存中?,第1张

概述有些人知道.NET在内存中保留值类型(主要是堆栈,但在某些情况下可能是堆) 我的问题是 – 结构的代码在哪里? 如果我在结构中说了16个字节的数据字段,并且在其中有一个大量的计算方法 – 我假设16个字节将被复制到堆栈中,并且方法代码存储在其他地方,并且对于struct的所有实例都是共享的. 这些假设是否正确? MSIL存储在程序集的代码段中 – 当程序集首次加载时, Windows映射到内存中. 有些人知道.NET在内存中保留值类型(主要是堆栈,但在某些情况下可能是堆)

我的问题是 – 结构的代码在哪里?

如果我在结构中说了16个字节的数据字段,并且在其中有一个大量的计算方法 – 我假设16个字节将被复制到堆栈中,并且方法代码存储在其他地方,并且对于struct的所有实例都是共享的.

这些假设是否正确?

解决方法 MSIL存储在程序集的代码段中 – 当程序集首次加载时,Windows映射到内存中.当该方法首次执行时,JIT将将MSIL编译为x86 / x64代码.一旦将该方法编译到内存中,它通常会保留在所有线程中,并被共享.在某些情况下,多个AppDomains将导致MSIL第二次被编译,但很少见. 总结

以上是内存溢出为你收集整理的C#.其中struct方法代码保存在内存中?全部内容,希望文章能够帮你解决C#.其中struct方法代码保存在内存中?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1236743.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存