当前位置:  开发笔记 > 编程语言 > 正文

C#如何确定代码的慢速部分在哪里?

如何解决《C#如何确定代码的慢速部分在哪里?》经验,为你挑选了2个好方法。

我的编码时间不长,所以我不熟悉哪种技术最快,所以我想知道在VS或第三方工具中是否有办法做到这一点?

谢谢



1> Mike Dunlave..:

好的,请关注时间......

Profilers非常适合测量.

但你的问题是"我怎样才能确定代码的缓慢部分在哪里?".

这是一个不同的问题.它是诊断,而不是测量.

我知道这不是一个流行的观点,但这是真的.

这就像是一家试图削减成本的企业.

一种方法(自上而下)是衡量总体财务状况,然后按类别和部门细分,并尝试猜测可以消除的内容.那是衡量标准.

另一种方法(自下而上)是随意走进办公室,随意挑选某人,并询问他们当时正在做什么,(重要的是)为什么,详细.

不止一次这样做.

这就是哈里杜鲁门在二战爆发时在美国国防工业中所做的事情,并通过访问几个网站立即发现了大规模的欺诈和浪费.那是诊断.

在代码中,您可以通过一种非常简单的方式执行此操作:"暂停"它并询问它为何花费该特定周期.通常,调用堆栈会详细告诉您原因.

不止一次这样做.

这是抽样.一些分析器对调用堆栈进行采样.但由于某种原因,他们坚持总结每个功能所花费的时间,包容性和排他性.这就像是商业部门的总结,包容性和排他性.

它会丢失您需要的信息,这是细粒度的细节,告诉您是否需要循环.

回答你的问题:

只需暂停几次程序,每次捕获调用堆栈.如果你的代码非常慢,那么浪费的函数调用几乎都在每个堆栈上.它们将精确指向"代码的缓慢部分".

补充:RedGate ANTS即将到来.它可以为您提供成本,而且非常漂亮.因此,如果你在.NET中,并且可以节省3个数字,并且不介意等待安装和学习它,它可以告诉你很多你的Pause键可以告诉你什么,并且更加漂亮.



2> Larsenal..:

剖析.

RedGate有一个产品.
JetBrains有一个产品.

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有