我正在使用Visual Studio 2010的内置分析器来查看一段性能不佳的代码.但是,我看到一些不太合理的结果.以下是报告的镜头:这似乎表明Regex.Replace是瓶颈(因此我应尽量减少或消除这种使用).然而,这感觉不准确,因为我...
我正在使用Visual Studio 2010的内置分析器来查看一段性能不佳的代码.但是,我看到一些不太合理的结果.以下是报告的镜头:
这似乎表明Regex.Replace是瓶颈(因此我应尽量减少或消除这种使用).然而,这感觉不准确,因为我知道这个特定的代码部分正在大量使用数据库,因此我希望SqlCommand.ExecuteNonQuery在此报告中至少要高一点,如果不比正则表达式更具优势使用.
所以,我的问题是:这个探查器工具是否对涉及数据库访问的任何东西都没用,因为SQL工作是由另一个进程(即SQL服务器)完成的,因此我必须以其他方式测量它?
解决方法:
Visual Studio探查器有两种操作模式,即采样和检测.
在采样模式下,它不会在I / O被阻塞时绘制样本.
因此,除了叶子正在进行原始CPU处理之外,它不能向您显示调用树的任何部分.
您正在使用采样模式.尝试仪器模式,它在挂钟时间运行,因此它包括I / O.
无论你做什么,请忽略专属时间.只注意包容时间,占总时间的百分比.
您正在寻找代码中的例程,这些例程在很长一段时间内处于活动状态,大部分时间都用于调用其他例程,
而你正在寻找你可以不用的电话.
附:我做this,总是有效的.
本文标题为:c# – 带有SQL的Visual Studio 2010探查器
基础教程推荐
- .NET CORE DI 依赖注入 2023-09-27
- c#之事件用法 2023-05-30
- C#中char和string的入门使用教程 2023-03-09
- c# – 有没有办法在SqlConnection GetSchema()查询上扩展超时? 2023-11-22
- WPF ComboBox获取当前选择值的实例详解 2023-03-29
- 浅谈C#跨线程调用窗体控件(比如TextBox)引发的线程安全问题 2022-11-23
- C#匿名函数和匿名方法的使用 2023-07-18
- c# – 从Windows窗体到WPF 2023-09-20
- C#中类的异常处理详解 2023-05-22
- C#中Dispose和Finalize方法使用介绍 2023-05-26