我正在使用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探查器
- 如何在WXP(和更新的MSWindows)上使用C#终止所有[grand]子进程 2023-09-20
- C#使用Socket实现局域网聊天 2022-12-11
- Unity通过UGUI的Slider调整物体颜色 2023-01-16
- 浅谈C# 9.0 新特性之只读属性和记录 2023-03-03
- java 文件下载支持中文名称的实例 2022-11-24
- C# lambda表达式原理定义及实例详解 2023-03-04
- C#调用Win32的API函数--User32.dll 2023-02-06
- C#使用Consul集群进行服务注册与发现 2023-02-03
- C# 使用Aspose.Cells 导出Excel的步骤及问题记录 2023-05-16
- C# 时间与时间戳互转的方法(13位) 2023-01-06