可能重复:
Effect of unused methods and properties on library or executable
我正在开发一个项目,我正在使用现有的应用程序进行开发,并根据项目要求进行自定义。定制时我发现了许多功能和功能。当前项目中没有用的方法。我正在考虑保持代码不变并仅在所需的代码中进行自定义,但我不确定这些无法访问的代码会对我的应用程序的性能产生多大影响。我应该保持原样还是将它们移除?
编辑:在我的应用程序中,DataInteraction程序集包含20个方法,其中2个正在使用,其余的没有,但根据我的知识,如果调用任何方法的程序集,而不是整个程序集加载到内存中,如果是的,我觉得它会影响表现。答案 0 :(得分:4)
它只是膨胀可执行文件大小..如果没有调用方法,它们不是JIT ..
..你应该考虑清理它们。它们的用途是什么?他们膨胀代码并使代码库使用更糟糕。
我也同意约翰的评论。
编辑:
回应关于未调用方法的评论:
答案是否定的,情况并非如此(为Release编译)。
答案 1 :(得分:1)
未使用的代码对性能影响很小。然而,对可维护性的影响是另一个主题。应首先管理代码的可维护性,可读性和可理解性。如果代码没有被使用且不太可能被使用,那就去除它,因为它会减少所有这三个措施。
在您知道自己有问题的时间和地点解决问题,因为您可以衡量它们。
答案 2 :(得分:1)
当Microsoft发布Visual Studio 2012时,它们包含的功能可以帮助您分析代码以帮助您优化代码。一些重要的规则:
CA1804:删除未使用的本地。 未使用的局部变量和不必要的赋值会增加程序集的大小并降低性能。
CA1809:避免过多的本地人。 常见的性能优化是将值存储在处理器寄存器而不是内存中,这称为“注册值” 。要增加注册所有局部变量的可能性,请将局部变量的数量限制为64。
优化代码很好,包括删除未使用的代码,但在此之前总是有备份副本。一些未使用的代码可能会在将来再次使用。要了解您还可以采取哪些措施来优化代码以获得更好的性能。访问以下链接
http://msdn.microsoft.com/en-us/library/ms182260.aspx
http://msdn.microsoft.com/en-us/library/dd380629.aspx
答案 3 :(得分:0)
This post应该回答你的问题。编译器应忽略任何未使用的using语句。即使您正在使用命名空间的一部分,因此在编译期间使用它,它只会复制它,并且只会影响lib / exe的大小,而不会影响性能。