C# 有多少无法实现的功能&;方法影响C语言的性能#

C# 有多少无法实现的功能&;方法影响C语言的性能#,c#,.net,performance,optimization,C#,.net,Performance,Optimization,可能重复: 我正在从事一个项目,在这个项目中,我使用现有的应用程序进行开发,并根据项目需求进行定制。在定制过程中,我发现了许多在当前项目中没有用处的函数和方法。我正在考虑保持代码的原样,只对所需的代码进行定制,但我不太确定这些无法访问的代码会对我的应用程序的性能产生多大的影响。我应该保留它们还是移除它们 编辑:在我的应用程序中,DataInteraction程序集包含20个方法,其中2个正在使用,其余的未使用,但据我所知,如果调用程序集的任何方法,则会将整个程序集加载到内存中,如果是,则会影响

可能重复:

我正在从事一个项目,在这个项目中,我使用现有的应用程序进行开发,并根据项目需求进行定制。在定制过程中,我发现了许多在当前项目中没有用处的函数和方法。我正在考虑保持代码的原样,只对所需的代码进行定制,但我不太确定这些无法访问的代码会对我的应用程序的性能产生多大的影响。我应该保留它们还是移除它们


编辑:在我的应用程序中,DataInteraction程序集包含20个方法,其中2个正在使用,其余的未使用,但据我所知,如果调用程序集的任何方法,则会将整个程序集加载到内存中,如果是,则会影响性能。

它只会增大可执行文件的大小。。如果没有调用这些方法,它们就不是JIT的

…不过你绝对应该考虑把它们清理干净。它们有什么用?它们会使代码膨胀,使代码库的使用变得更糟

我也同意约翰的意见

编辑:

针对有关未调用方法的评论:


答案是否定的,事实并非如此(为发布而编译)。

应该回答您的问题。编译器应该忽略任何未使用的using语句。即使您正在使用命名空间的一部分以便在编译期间使用它,它也只会将其复制进来,并且只会影响lib/exe的大小,而不会影响性能。

未使用的代码对性能的影响很小。然而,对可维护性的影响是另一个话题。代码管理首先应考虑可维护性、可读性和可理解性。如果代码没有被使用,也不太可能被使用,那就扔掉它,因为它会减少所有这三项措施


在您知道自己有问题的时间和地点解决性能问题,因为您可以测量这些问题。

当Microsoft发布Visual Studio 2012时,这些问题包括您可以分析代码以帮助优化代码的功能。一些重要规则:

CA1804:删除未使用的局部变量。未使用的局部变量和不必要的赋值会增加程序集的大小并降低性能

CA1809:避免过多的局部变量。一种常见的性能优化方法是将值存储在处理器寄存器而不是内存中,这称为“重新注册值”。要增加注册所有局部变量的机会,请将局部变量的数量限制为64

优化您的代码(包括删除未使用的代码)是很好的,但在您这样做之前,请始终有一个备份副本。一些未使用的代码将来可能会再次使用。查看还可以做些什么来优化代码以获得更好的性能。访问以下链接


一个更好的问题是过早优化对开发人员的性能有多大影响?如果没有性能问题,那么不要担心性能。毫无疑问,你还有很多其他的问题要考虑。嗨,约翰。我的PM已经给了我一个任务来提高这个应用程序的性能,这就是为什么我从这一点开始思考。@AshishKhandelwal如果你的任务是提高性能,你应该从发现性能问题开始。先做分析。至于你的编辑,两种方法几乎不值得组装,试着将它们移动到另一个或合并它们。@AshishKhandelwal:你的技巧正是我所指的。解决性能问题的方法是,首先发现问题,然后获取问题所在的详细信息,然后修复问题,再次测量,修复更多,再次测量,等等。修复性能问题最糟糕的方法是从猜测可能存在此类问题的位置开始,然后继续修复错误的问题。@@All:我仍然感到困惑。如果所有方法都属于同一个程序集,并在同一个using语句中调用,那么如果某些方法正在使用,而另一些方法未使用,则是否会影响性能@@Simon:如果程序集包含20个方法,其中只有2个方法被调用,而没有rest方法,因此,无论是完全汇编加载到内存还是只有2个方法知道C++中的未调用方法在编译时从执行过程中被简单地删除。这不是C#中的情况吗?非常令人惊讶!我想它必须保证反射私有方法会起作用,即使没有人调用私有方法?@Patashu,听起来不错。当您可以通过字符串文字/变量调用某个方法时,很难确定是否调用了该方法:)@@Nashibukasan:所有方法都在同一个using中,但有些是必需的,有些不是+1。未使用的代码会影响开发人员的工作效率,因为它需要得到支持,请查看。。。结果,应用程序的总体性能下降,因为开发人员添加所需功能和分析积极使用的代码的时间减少了。