欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

令人苦恼的调试缓慢问题

发布时间:2025/7/25 编程问答 35 豆豆
生活随笔 收集整理的这篇文章主要介绍了 令人苦恼的调试缓慢问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

之前的一个重要基础工程每次进入单步调试,总会在装载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;elsethrow new NotSupportedException();}

转载于:https://www.cnblogs.com/norsd/p/6359306.html

总结

以上是生活随笔为你收集整理的令人苦恼的调试缓慢问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。