关于VS2012自带的 性能分析 工具使用实例(图文介(2)


public class Core
    {
        public void Process(string input)
        {
            //process logic
            string result = string.Format("{0}-{1}", DateTime.Now, input);

//log to file
            Log(result);
        }


        private static List<string> log = new List<string>();
        public static void Log(string message)//fileName去掉了,因为此时已经不需要这个变量了,因为是由其他线程负责写入磁盘
        {
            string msg = "{Now}: {Message}";
            msg = msg.Replace("{Now}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
            msg = msg.Replace("{Message}", message);
            log.Add(msg);
        }

}   

我们再次运行性能分析,如下:

关于VS2012自带的 性能分析 工具使用实例(图文介

我们比较下第一次和这一次的曲线图:

关于VS2012自带的 性能分析 工具使用实例(图文介

改进后的性能明显好于改进之前的性能。

自定义性能分析

我们可以通过修改属性来add/remove性能指标,比如要加入某个/某些Windows计数器、收集Windows事件、收集.NET对象生命周期等,我们可以进行如下操作来进行设置:

关于VS2012自带的 性能分析 工具使用实例(图文介

将会生成如下更详细的报告:

关于VS2012自带的 性能分析 工具使用实例(图文介

报告中会列出生成的最多的是哪种对象(本例中是string)、由哪些函数导致的分配了最多的内存、等等

在“标记”视图中,能看到每隔500毫秒收集的windows计数器数据,如下图就是磁盘队列计数器的收集:

关于VS2012自带的 性能分析 工具使用实例(图文介

在“对象生存期”视图中,能看到各种对象从new到dispose的所有数据,如下图:

关于VS2012自带的 性能分析 工具使用实例(图文介

很牛b吧。

下面说说如何通过VS2012来对独立运行的程序进行性能分析,其实很简单,就下面这个图就搞定了,大家都懂的:

关于VS2012自带的 性能分析 工具使用实例(图文介

再说说如何对web项目性能分析吧...

先打开web项目解决方案,然后直接进行性能分析,有人会说没有请求操作啊,这个简单,有多个解决办法:

再开一个VS环境(无论是远程的还是本地的),通过web负载测试来疯狂请求通过loadrunner/qtp来模拟请求悲催的人工请求...

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjgsfw.html