我的编码时间不长,所以我不熟悉哪种技术最快,所以我想知道在VS或第三方工具中是否有办法做到这一点?
谢谢
好的,请关注时间......
Profilers非常适合测量.
但你的问题是"我怎样才能确定代码的缓慢部分在哪里?".
这是一个不同的问题.它是诊断,而不是测量.
我知道这不是一个流行的观点,但这是真的.
这就像是一家试图削减成本的企业.
一种方法(自上而下)是衡量总体财务状况,然后按类别和部门细分,并尝试猜测可以消除的内容.那是衡量标准.
另一种方法(自下而上)是随意走进办公室,随意挑选某人,并询问他们当时正在做什么,(重要的是)为什么,详细.
不止一次这样做.
这就是哈里杜鲁门在二战爆发时在美国国防工业中所做的事情,并通过访问几个网站立即发现了大规模的欺诈和浪费.那是诊断.
在代码中,您可以通过一种非常简单的方式执行此操作:"暂停"它并询问它为何花费该特定周期.通常,调用堆栈会详细告诉您原因.
不止一次这样做.
这是抽样.一些分析器对调用堆栈进行采样.但由于某种原因,他们坚持总结每个功能所花费的时间,包容性和排他性.这就像是商业部门的总结,包容性和排他性.
它会丢失您需要的信息,这是细粒度的细节,告诉您是否需要循环.
回答你的问题:
只需暂停几次程序,每次捕获调用堆栈.如果你的代码非常慢,那么浪费的函数调用几乎都在每个堆栈上.它们将精确指向"代码的缓慢部分".
补充:RedGate ANTS即将到来.它可以为您提供成本,而且非常漂亮.因此,如果你在.NET中,并且可以节省3个数字,并且不介意等待安装和学习它,它可以告诉你很多你的Pause键可以告诉你什么,并且更加漂亮.
剖析.
RedGate有一个产品.
JetBrains有一个产品.