令人苦恼的调试缓慢问题
来源:互联网 发布:上海威纳数据有用吗 编辑:程序博客网 时间:2024/05/04 20:15
之前的一个重要基础工程每次进入单步调试,总会在装载XML之后的解析工作时异常缓慢,往往需要7秒,而直接运行则只需要1秒,无论Debug还是Release.
后来一点点把代码注释,单步,注释再单步,终于确定了问题所在:
首先在一个重复运算的循环内部有如下语句:
var bPreDay = GetAttributeText("PreDay", "0").ToInt()>0;
此函数是一个扩展函数,实现如下:
public static string GetAttributeText(this XmlNode arg_node, string arg_strAttribute, string arg_strDefault = "") { var strRet = arg_strDefault; try { return (arg_node.Attributes[arg_strAttribute] as XmlAttribute).InnerText; } catch (Exception ex) { } return strRet; }
这是一个老旧的历史代码,无疑其实现非常糟糕。竟然吞咽了异常!
此函数在初期书写时也许觉得可以不用判断,偷懒,结果不停重复调用时,由于arg_node.Attributes[arg_strAttribute]
返回null,造成此函数不停进入exception,消耗了大量时间资源。
我们现在将函数改为如下形式:
public static string GetAttributeText(this XmlNode arg_node, string arg_strAttribute, string arg_strDefault = "") { var attr = arg_node.Attributes[arg_strAttribute]; if (null == attr) return arg_strDefault; if (attr is XmlAttribute) return (attr as XmlAttribute).InnerText; else throw new NotSupportedException(); }
0 0
- 令人苦恼的调试缓慢问题
- 使用VS2008调试缓慢问题
- 关于VS2008调试时加载符号缓慢的问题
- 关于VS2008调试时加载符号缓慢的问题
- VS调试时出现“加载符号缓慢的问题”
- 调试Android USB遇到的令人费解的问题
- 令人头疼的中文问题
- 令人头疼的乱码问题
- 一个令人吐血的问题
- 令人抓狂的编码问题
- windows2008开始菜单反映缓慢的问题
- 解决VC2008加载符号缓慢的问题
- 解决myeclipse编辑js缓慢的问题
- wampserver 网站访问非常缓慢的问题.
- OpenStack中删除Volume缓慢的问题
- 解决SPRING加载缓慢的问题
- 网站打开缓慢的问题排查
- 解决VS2012【加载......符号缓慢】的问题
- 圣杯布局与双飞翼布局的实现思路
- Java堆.栈和常量池 笔记
- 圣杯布局与双飞翼布局的实现思路
- 双飞翼布局(圣杯布局)介绍-始于淘宝UED
- hdu 3667 Transportation【费用流 + 拆边】
- 令人苦恼的调试缓慢问题
- zkw费用流模板
- Java线程详解(深度好文)
- VS2012单元测试
- 绘制渐变矩形的一种方法
- php 与jquery 选中select
- servlet&jsp jar包 下载
- SSH-jar包相应作用
- 【小熊刷题】power of two, pow(x, n) <Leetcode 231, 50 Java>