我正在尝试为 C# (.NET) 创建源代码生成器。生成永远不会被调用的属性或方法会导致我的代码运行速度变慢吗?为不使用的库插入“using”语句怎么样?
我假设编译器足够聪明,不会构建未使用的“using”语句,但它无法了解属性和方法,因为它们could插入以供外部应用程序使用。
编译器已经足够智能,可以仅列出实际使用的最终可执行文件中引用的程序集。无需摆弄程序集引用或使用指令。
JIT 编译器只会为实际调用的方法生成代码。因此,您不会因从未使用过的代码而产生任何机器代码或编译时间开销。
CLR 通过内存映射文件引用您的可执行映像。仅当 DLL 中的实际内容被 CLR 使用时才会使用 RAM。这取决于您使用的方法的 IL 如何在图像中分布。由于 JIT 编译器从不引用 IL,因此图像数据也不会被分页到 RAM 中,这是合理的可能性。换句话说,您将失去一些虚拟内存空间,但不会消耗相应数量的 RAM。
如果您的 DLL 具有强命名并存储在不受信任的位置,则由于文件较大,热启动时间会稍长。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)