【问题标题】:.NET Multifle Assemblies...Can save RAM space because secondary modules loaded on demand?.NET Multifle Assemblies...可以节省 RAM 空间,因为辅助模块按需加载?
【发布时间】:2010-11-21 01:37:44
【问题描述】:

我正在研究 .NET 多文件程序集。在多文件程序集的上下文中,该书指出:

*.netmodules [不是主模块] 在被调用代码使用时由 CLR 按需加载

如果我错了,让我走上正轨,但是在调用可执行文件时,所有引用的程序集,包括可执行文件的编译代码都被加载到内存中,然后由 JIT(即时编译器)处理当代码被调用时。我可能误解了上面的引述,但我对引述的理解是,作为多文件程序集一部分的 .net 模块在调用之前不会加载到内存中

我这样想对吗?

【问题讨论】:

    标签: .net .net-3.5 assemblies


    【解决方案1】:

    ...但是当调用可执行文件时,所有引用的程序集,包括可执行文件的编译代码都被加载到内存中

    没有。根据需要加载程序集。如果您不需要程序集(例如特定语言或任何参考的卫星资源程序集),则不会加载它们。此类程序集的 JIT 会在它们被访问和加载时完成。作为参考,请通过 C# 使用 Richter 的 CLR。​​

    【讨论】:

    • 我现在看到引用的程序集直到需要才加载。正在执行的程序集是否已完全加载到内存中?例如,如果我运行 MyExecutingAssembly.exe,是否将完整的程序集加载到内存中? (“完整”表示元数据、CIL、标头、清单)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    • 2017-04-18
    • 2012-07-23
    • 1970-01-01
    相关资源
    最近更新 更多