使用dottrace2.0进行性能分析简介

         JetBrains dotTrace 2.0是一款优秀的代码分析(Profile)程序,可分析基于.NET framework1.1以及2.0的Windows程序、Windows服务、运行在IIS上的ASP.NET程序...
         这里主要介绍的是性能分析( Performance profiling)。
         JetBrains dotTrace可使用图形化的界面截取程序运行时的线程调用映像。由于程序运行的时候,我们很难把握它运行到哪儿了,所以JetBrains dotTrace也提供一个API来帮我们编写代码来截取该映像。
         首先,建立一个Console项目ConsoleApplication3,Program类代码如下:
ContractedBlock.gif ExpandedBlockStart.gif
None.gifusing System;
None.gif
using System.Collections.Generic;
None.gif
using System.Text;
None.gif
using System.Threading;
None.gif
None.gif
using JetBrains.dotTrace.Api;
None.gif
None.gif
namespace ConsoleApplication3
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    
class Program
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
static void Main( string[ ] args )
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            CPUProfiler.Start( );
InBlock.gif
InBlock.gif            OutputName( 
"Minco" );
InBlock.gif
InBlock.gif            CPUProfiler.StopAndSaveSnapShot( );
ExpandedSubBlockEnd.gif        }

InBlock.gif
InBlock.gif        
private static void OutputName( string name )
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
if(!string.IsNullOrEmpty( name))
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                Console.WriteLine( 
"Hello: " + name);
InBlock.gif                Thread.Sleep( 
100 );
ExpandedSubBlockEnd.gif            }

ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

None.gif
编译项目。打开dotTrace,选择“Profile Application...”,在弹出的对话框里填入演示项目生成的ConsoleApplication3.exe的路径(由于我用的是中文版,没有在工具栏上“运行”旁边看见dotTrace的按钮,要不就不用这么麻烦了),按“Start Application”按钮,一会dotTrace就会出现如下图显示的截图:

上图很清楚的看到GetName方法占用了99.21%的时间(不同时间不同机器有所出入),而其中Console.WriteLine()占用了50.09%的时间,Thread.Sleep()占用了48.32%的时间。通过分析复杂点的程序,我们可以找出到底是哪些代码导致了性能问题。
         Winform的程序也采用一样的方法。Asp.net的程序跟这类似,选择的是URL。Windows Service的程序倒是没测试过,只不过是将Windows Service的程序的进程附加上去
        呵呵,就这样。得看看CLRProfiler怎么玩了。有问题一起讨论 02.gif

转载于:https://www.cnblogs.com/ofei/archive/2007/04/25/727331.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C#中,可以使用性能分析工具来帮助我们找出代码中的性能瓶颈,并进行优化。下面是一些常用的性能分析工具和使用方法: 1. Visual Studio性能分析器:Visual Studio自带了一个强大的性能分析器,可以帮助我们分析和优化C#代码的性能使用方法如下: - 打开要进行性能分析的项目。 - 在“调试”菜单中选择“性能分析器”。 - 选择要进行性能分析的启动项(例如,选择“CPU性能分析”)。 - 点击“开始分析”按钮,运行代码并进行性能分析。 - 分析结果将显示在性能分析器窗口中,可以查看函数调用图、CPU使用情况、内存使用情况等信息,从而找出性能瓶颈。 2. JetBrains dotTracedotTrace是一款功能强大的性能分析工具,可以帮助我们找出C#代码中的性能问题。使用方法如下: - 安装并打开dotTrace。 - 选择要进行性能分析的应用程序或进程。 - 点击“开始分析”按钮,运行代码并进行性能分析。 - 分析结果将显示在dotTrace窗口中,可以查看函数调用图、CPU使用情况、内存使用情况等信息,从而找出性能瓶颈。 3. PerfView:PerfView是一个免费的性能分析工具,由微软提供。使用方法如下: - 下载并打开PerfView。 - 选择要进行性能分析的应用程序或进程。 - 点击“Collect”按钮,运行代码并进行性能分析。 - 分析结果将显示在PerfView窗口中,可以查看函数调用图、CPU使用情况、内存使用情况等信息,从而找出性能瓶颈。 使用性能分析工具进行优化时,可以关注以下几个方面: - CPU使用情况:查看代码中哪些函数占用了大量的CPU时间,是否存在性能瓶颈。 - 内存使用情况:查看代码中是否存在内存泄漏或者频繁的垃圾回收。 - 函数调用图:查看函数之间的调用关系,找出函数调用次数较多或者耗时较长的地方。 通过性能分析工具的帮助,我们可以更加直观地了解代码的性能问题,并进行有针对性的优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值