未使用的使用语句
我可能已经知道这个问题的答案,但我认为无论如何都值得问。 如果我在我的代码文件中加载了一些未using
语句;
- 这会对性能产生任何不利影响吗?
- 编译器如何在编译/运行时处理它们?
谢谢
这有什么不利的性能影响吗?
没有。
编译器如何在编译/运行时处理它们?
在编译时,它们会按照您的期望执行,即充当命名空间导入。 它们不出现在已编译的二进制文件中:对类型的任何引用都使用完全限定名称。
即使不需要,编译器也会在using
语句中检查命名空间; 如果删除命名空间,则引用它的所有using
语句都将失败。
对我来说,冗余的using
语句就像冗余的注释。 它们对编译器没有任何影响,但包含太多它们,并且您可能会使开发人员感到困惑。
它根本不会影响运行时的性能。
从那以后,它可能会略微增加编译时间:
1)编译器需要解析更多的字符
2)它必须在更多候选者中查找标识符。 但由于这可能使用哈希表,因此它也不应该很昂贵。
我猜测编译器减速可以忽略不计 。
我猜它会减慢Intellisense的速度,因为它必须显示的列表和filter会相当长一些。
删除未使用的使用更具风格,而不是性能改进。 您需要注意扩展方法,因为它们通过使用语句进入范围。 例如,即使当前未using System.Linq
我也不会删除它。
在运行时没有性能损失,使用在编译时解决,无用的被忽略。
运行时没有性能影响。 但是,许多命名空间可能会降低代码完成速度并降低工作效率
它完全没有影响 – 请参阅对此问题的回答:
性能如何受未使用的using指令的影响?
它可能会使编译时间更长,但它对运行时性能没有影响或影响可忽略不计。