C# 如何使我的代码快速
请任何人都可以给我一个好的教程,帮助我使我的代码快速和轻。 我想知道哪种方法更快,以及何时使用一种方法而不是其他…C# 如何使我的代码快速,c#,optimization,C#,Optimization,请任何人都可以给我一个好的教程,帮助我使我的代码快速和轻。 我想知道哪种方法更快,以及何时使用一种方法而不是其他… 如何评估代码是好是坏? 我的编程语言是C 大家好, 感谢您的回复,非常有帮助。 我编辑我的问题是为了更具体,特别是优化是无限的。 我想知道在每种情况下最好的方法是什么。 例如,如果我将行附加到字符串,则使用StringBuilder比使用字符串要好。。。 我只需要这些简单的东西。如果一种方法总是比另一种方法快,他们就不会费心把慢一点的方法包括进来 谈到性能,唯一不变的是您需要配置文
如何评估代码是好是坏?
我的编程语言是C 大家好,
感谢您的回复,非常有帮助。
我编辑我的问题是为了更具体,特别是优化是无限的。
我想知道在每种情况下最好的方法是什么。
例如,如果我将行附加到字符串,则使用StringBuilder比使用字符串要好。。。
我只需要这些简单的东西。如果一种方法总是比另一种方法快,他们就不会费心把慢一点的方法包括进来
谈到性能,唯一不变的是您需要配置文件。一切都是这样。打字非常快 你应该看看,这篇文章介绍了c#开发中的最佳实践注意次优化 即使一个特定的函数比另一个快,但这并不一定会对应用程序的运行时产生任何影响。您需要了解代码的哪些部分实际上是一个潜在的问题,并集中精力优化这些部分。请注意函数的类型,以及调用它们的频率。要确定需要优化的零件,探查器可以提供很好的帮助
有一些有趣的观点,关于为什么在实际需要优化之前不应该进行优化 基本上先实施,然后测试优化的位置
如果您使用的是Visual Studio Profissional,则可以使用分析->启动性能向导来分析方法性能。我不确定其他版本是否支持此功能,但是,也有一些商业/免费应用程序。。。查找探查器(请参阅列表)。关于一般建议:
- 尽量使用最少的循环
- 尽可能将代码移出循环
- 避免在循环中复制内容(如字符串)
- 避免在循环中创建对象
- 在保证的情况下缓存(通常是小对象,需要花费很多时间来创建),但请确保缓存具有良好的处理策略,否则会导致内存泄漏
我希望有人在我职业生涯的早期就向我指出这一点。你可以得到很多关于这一点的建议。但要注意:
过早优化是万恶之源。您可以在本机模式下编译程序以提高运行时性能。解决这一问题的方法之一是使用一个控制台应用程序,在该应用程序中,您可以尝试相互运行离散的代码片段并对它们进行计时。比如。首先是为了正确,其次是为了清晰,然后才是性能 俗话说, “没人在乎你计算错误答案的速度有多快”
(但在实际层面上,请使用探查器)当然。我们的工作如下:
- 决定旅程何时结束,开始旅程。设定有意义、以客户为中心、现实的绩效目标。(用于速度和资源消耗。)
- 经常仔细测试代码,看看是否达到了性能目标
- 如果你正在实现你的绩效目标,不要担心绩效。一切都很好。担心bug、健壮性或特性
- 如果未达到性能目标,请运行探查器。使用它来识别最严重的违规代码。只有修复最糟糕的代码才有意义;制造速度快、重量轻、速度快、重量轻的产品并不能解决性能问题
- 重写慢代码,使其更具性能。(这是困难的一点。)确保你测试它,以确保它真的更好
- 如果尽管你尽了最大的努力,你还是不能把它做好,要么重新评估你的目标是什么,要么取消这个项目,把你的时间花在你能成功的事情上
不断重复,直到你发货。你可能需要更具体一些。一般的答案是:尽可能多地做,但不要超过这个。StringBuilder不能保证在连接小的时性能得到提升(我要补充:(1)去掉所有注释(2)将变量缩短为一个字母(3)删除不必要的空格,包括换行符(4)为不同目的重复使用变量…;-)我想补充一点。。。如果你打字不快。。使用语音到文本软件:P我无法想象一个程序员使用语音到文本软件来编码……但这难道不能帮助QA更快地发现您的bug吗?:)不是真的。例如,看看在C#中执行文件i/o的所有方法。为了向后兼容,旧方法随处可见,并且根据您想要达到的低级或高级程度,有不同的抽象层。问题链接被删除lol:(