大漠行者 发表于 2010-5-12 16:49:19

大家有好的.NET 性能测试方法吗?

我现在有个.NET的应用,在运行了1个小时左右,会出现占用CPU 近100%, 并持续1~2分钟,然后恢复正常,大家给出出主意可能的原因是什么?或者有什么好的troubleshooting方法?

snapshot as:


[ 本帖最后由 大漠行者 于 2010-5-12 17:07 编辑 ]

PrefTest 发表于 2010-5-13 21:19:04

是什么类型的.NET应用程序啊?把软件的架构说一下

可以看看AQTime之类的代码分析工具能不能用

大漠行者 发表于 2010-5-17 15:08:53

测试产品提供了.NET的api,我们自己写了一个应用程序来调用.NET API ,这个应用主要是模拟多用户来测试产品的.NET api 在多用户并发情况下的性能

liangshi 发表于 2010-5-24 21:19:49

<P>1. Windows的Perfmon有一个功能:当性能指标超过指定值时,执行用户指定的程序。你可以设定当CPU占用率超过90%时,调用Windbg生成程序的内存映像文件(memory dump)。 </P>
<P>&nbsp;</P>
<P>2. 然后用windbg打开dump文件,加载调试器扩展psscor2(微软提供下载,搜索一下就可以找到)。 </P>
<P>&nbsp;</P>
<P>3. 用命令!runaway分析线程占用CPU的情况,找到问题线程,确定问题代码。 </P>
<P>&nbsp;</P>
<P>4. 用命令!SaveAllModules将模块信息保存为文件,用 CLR Profiler(微软提供下载,请搜索)打开该文件,它会提供图形化的分析结果。CLR Profiler主要分析内存问题,可能不太有帮助,但是突然运行缓慢也许是垃圾回收线程造成的。 </P>
<P>&nbsp;</P>
<P>此外,从图上看,CPU的峰值是比较有规律的。开发者可以守候在计算机旁边,一旦发现问题,立即将调试器附加在被测试程序上。利用Visual Studio做源代码级别的调试,效率要优于Windbg。 </P>
<P>&nbsp;</P>
<P>我在个人空间对第1步进行了详细的介绍:http://www.51testing.com/?uid-298785-action-viewspace-itemid-214750</P>

[ 本帖最后由 liangshi 于 2010-5-31 16:38 编辑 ]
页: [1]
查看完整版本: 大家有好的.NET 性能测试方法吗?