在此MSDN帖子中,https://msdn.microsoft.com/en-us/library/windows/apps/hh994639.aspx,
我读了这段话:
可重用代码通常以包含在a中的模块(DLL)的形式出现 项目。加载这些模块需要访问磁盘,并像您一样 可以想象,这样做的成本可以加起来。这是最大的 对冷启动的影响,但它会对温暖启动产生影响, 太。在C#和Visual Basic的情况下,CLR试图延迟它 通过按需加载组件尽可能地降低成本。那就是 在执行的方法引用模块之前,CLR不会加载模块。所以, 仅引用启动应用程序所必需的程序集 在启动代码中,以便CLR不加载不必要的模块。如果 您的启动路径中有未使用的代码路径,这些路径没有必要 引用,您可以将这些代码路径移动到其他方法以避免 不必要的负荷。
这对我来说,引用未使用的DLL会对启动时间产生影响。说,我不小心引用了
使用System.IO
我从不在我的代码中使用它,模块仍然在运行时加载。根据我对编译器工作原理的理解,这些代码在编译时被删除。事实上,在冷启动之前的程序处于低级语言格式(此时,它应该是机器语言)
我不打算这样做,但如果段落是正确的,我恐怕我可能误解了编译/语言翻译的基本概念。是这样的吗?