任何人都可以指点我一个很好的教程,帮助我快速轻松地编写代码。
我有兴趣知道哪种方法更快,何时使用方法而不是其他方法...
以及如何评估代码是好还是坏?
我的编程语言是C#。
大家好,
感谢您的回复,他们非常有帮助
我正在编辑我的问题,更具体地说,优化是无限的
我想知道每种情况下最好的方法是什么
例如,如果我将字符串附加到字符串,则使用StringBuilder优于字符串...
我只需要这些简单的东西。
答案 0 :(得分:18)
注意子优化。
即使一个特定的功能比另一个更快,但这不一定会对应用程序的运行时产生任何影响。您需要了解代码中哪些部分确实存在潜在问题,并专注于优化这些部分。请注意您的O notation函数,以及它们被调用的频率。为了识别需要优化的部件,分析器可以提供很好的帮助。
This question有一些有趣的观点,说明为什么在实际需要之前不应进行优化。
答案 1 :(得分:7)
不确定。这就是我们的工作:
通过决定旅程结束的时间开始旅程。设定有意义,以客户为中心,切合实际的绩效目标。 (速度和资源消耗都有。)
经常仔细测试您的代码,看看您是否达到了性能目标。
如果您达到了效果目标,请不要担心性能问题。事情很好。担心错误,健壮性或功能。
如果您未达到效果目标,请运行探查器。用它来识别最糟糕的违规代码。修复最差的代码才有意义;制作已经非常快速且亮度稍快且轻的东西并不能解决您的性能问题。
重写慢速代码,使其性能更高。 (这很难。)确保你测试它以确保它真的更好。
如果你尽了最大的努力,你就无法做到足够好,要么重新评估你的目标,要么取消项目,把时间花在你可以成功的事情上。
继续迭代,直到你发货。
答案 2 :(得分:5)
快速输入。
答案 3 :(得分:5)
首先实施,然后测试优化的位置。
如果您使用的是Visual Studio Profissional,则可以使用Analyze - >启动性能向导以分析方法性能。我不确定其他版本是否支持此功能,但是,还有一些商业/免费应用程序...寻找分析器(请参阅here获取列表)。
答案 4 :(得分:3)
您应该查看hidden features of c#,这篇文章介绍了c#development中最优秀的实践
答案 5 :(得分:3)
你可以得到很多关于此的建议。但请注意: 过早优化是万恶之源。
答案 6 :(得分:3)
首先瞄准正确性,然后瞄准清晰度,然后瞄准性能。
俗话说,
“没有人关心你能以多快的速度计算错误答案”
(实际上,使用分析器)
答案 7 :(得分:2)
如果一种方法总是比另一种方法更快,那么它们就不会包括较慢的方法。
性能方面唯一不变的是你需要分析。一切都从此开始。
答案 8 :(得分:2)
如果你自己一个探查器,它会帮助你,有些甚至会给你很好的建议。
通常你会发现减少创建字符串的次数是你可以获得的主要性能提升。
那并且不要手动弄乱垃圾收集器(除非你真的知道你在做什么)
Java design patterns的这个链接过于复杂,不要因为Java这个词过于推迟,你可以使用他们用任何语言进行开发的教学。
问题是,如果你想知道何时做什么以及使用什么方法等等,设计模式就是你所说的。
我希望有人在我的职业生涯早期向我指出这一点。
答案 9 :(得分:1)
就一般建议而言:
答案 10 :(得分:1)
您可以在纯模式下编译程序以提高运行时性能。
答案 11 :(得分:0)
自己解决这个问题的方法之一是使用一个控制台应用程序,在这个应用程序中,您可以尝试相互运行离散的代码并对它们进行计时。与here一样。