![]() |
1
3
与.net相关的性能信息的一个很好的资源是 Rico Mariani's Blog |
![]() |
2
16
您应该做一些事情,比如使用泛型而不是对象来避免装箱/拆箱,还可以提高代码安全性,但是优化代码的最佳方法是使用探查器来确定代码的哪些部分比较慢。有许多优秀的.NET代码探查器可用,它们可以帮助确定程序中的瓶颈。
一个好的探查器会告诉你一个函数执行了多少次,一个函数的平均运行时间是多少,一个函数的峰值运行时间是多少,一个函数的总运行时间是多少,一些探查器甚至会为您绘制图形,这样您就可以直观地看到程序的哪些部分是最大的瓶颈,并且可以深入到子函数调用。 如果不分析,您很可能会错误地判断程序的哪个部分是慢的。 一个伟大的和免费的.NET探查器的例子是 EQATEC Profiler . |
![]() |
3
8
关于这个问题最重要的一点是:不要过早地优化!
在编写第一个版本的代码时考虑优化,这大部分是浪费时间和精力。 |
![]() |
4
5
“我宁愿选择快速执行脏代码,而不是更优雅或干净,但速度较慢的代码。” 如果我正在为游戏编写像素渲染器,也许我会考虑这样做——但是,例如,当响应用户单击按钮时,我总是倾向于使用较慢、优雅的方法,而不是快速和肮脏的方法(除非缓慢>几秒钟后,我可能会重新考虑)。 我必须同意其他职位-个人资料,以确定你的慢点,然后处理这些。从一开始就编写最佳的代码比它的价值要麻烦得多,你通常会发现你认为慢的地方很好,而真正慢的地方会让你大吃一惊。 |
![]() |
5
2
|
![]() |
6
2
有很多诀窍,但如果这是你认为你需要的,你需要重新开始。在任何语言中,性能的秘密不在于编码技术,而在于 找到要优化的内容 . 打个比方,如果你是一名警探,你想把强盗关进监狱,你的生意的核心不是不同类型的监狱。是关于 找到劫匪 我依赖于一种纯手工的分析方法。 This is an example 找到一系列要优化的点,结果是 . 如果在现有应用程序上执行此操作,则很可能会发现性能低下的主要原因是数据结构设计过于夸张,从而导致过度的通知式一致性维护,其特点是调用树过于繁杂。你需要在调用树中找到那些花费很大并且可以删减的调用。 这样做之后,您可能会意识到,一种使用最少的数据结构和抽象来设计软件的方法一开始会运行得更快。 |
![]() |
7
0
如果您已经分析了您的代码,并且发现它缺乏快速性,那么您有时可以使用一些微优化。这里有一个 short list . 微优化是明智的——就像《哈利波特》里的镜子:如果你不小心的话,你会把所有的时间都花在那里,没有得到很多回报的话,你就什么也做不了。 StringBuilder和异常抛出的例子都是很好的——这些都是我经常犯的错误,有时还会添加一些 发现 东西。在这种情况下,我使用哈希表(或字典)缓存频繁访问的对象。 |
![]() |
8
0
|
![]() |
9
0
http://www.techgalaxy.net/Docs/Dev/5ways.htm 有一些很好的观点。。。今天才发现的。 |
|
Liana78 · 查找和最小化合并排序算法运行时分析 6 年前 |
|
Lamaman · 素数算法的复杂度是多少? 6 年前 |
![]() |
irish Senthil · 声明变量是否对大O表示法有效? 7 年前 |
![]() |
Monk · 为什么大Oh不总是算法的最坏情况分析? 7 年前 |
|
Faisal Alzahrani · 用Java计算程序的Big-O 7 年前 |
![]() |
Dazcii · 如何找到3个嵌套循环的复杂性 7 年前 |
|
svaerth · 使用巨型哈希表在多项式时间内求解数独 7 年前 |