使用vs自带的性能诊断工具

摘要:
visualstudio是个强大的集成开发环境,内置了程序性能诊断工具。staticvoidMain{Test1();Test2();Console.ReadKey();}protectedstaticvoidTest1(){Stopwatchsp=newStopwatch();sp.Start();stringstr="";for{for{str+="stringappend1=";str+=i.ToString()+"";str+="stringappend2=";str+=j.ToString()+"";}}sp.Stop();Console.WriteLine;}protectedstaticvoidTest2(){Stopwatchsp=newStopwatch();sp.Start();StringBuilderstr=newStringBuilder();for{for{str.Append;str.Append;str.Append;str.Append;}}sp.Stop();Console.WriteLine;}ViewCode先运行一下查看运行结果如下:两个函数实现的功能都一样,实现方式不一样,效率却完全不一样,下面通过vs自带的性能分析工具进行分析,可以分析出程序对cpu使用率和内存使用情况等,本次以cpu测试为例。注:本次测试用的是vs2013,在vs2010里为启动性能向导。性能诊断工具还有不少,如微软的CLRProfiler,还有WinDbg等,后续的博客会对这两个工具作介绍。

visual studio是个强大的集成开发环境,内置了程序性能诊断工具。下面通过两段代码进行介绍。

使用vs自带的性能诊断工具第1张使用vs自带的性能诊断工具第2张
static void Main( string[] args)
        {
            Test1();
            Test2();
            Console.ReadKey();
        }
        protected static voidTest1()
        {
            Stopwatch sp = newStopwatch();
            sp.Start();
            string str = "";
            for (int i = 0; i < 100; i++)
            {
                for (int j = 0; j < 100; j++)
                {
                    str += "string append1= ";
                    str += i.ToString() + " ";
                    str += "string append2= ";
                    str += j.ToString() + " ";
                }
            }
            sp.Stop();
            Console.WriteLine("Test1 Time={0}", sp.Elapsed.ToString());
        }
        protected static voidTest2()
        {
            Stopwatch sp = newStopwatch();
            sp.Start();
            StringBuilder str = newStringBuilder();
            for (int i = 0; i < 100; i++)
            {
                for (int j = 0; j < 100; j++)
                {
                    str.Append( "string append1= ");
                    str.Append(i.ToString());
                    str.Append( "string append2=");
                    str.Append(j.ToString());
                }
            }
            sp.Stop();
            Console.WriteLine("Test2 Time={0}", sp.Elapsed.ToString());
        }
View Code

先运行一下查看运行结果如下:
使用vs自带的性能诊断工具第3张

两个函数实现的功能都一样,实现方式不一样,效率却完全不一样,下面通过vs自带的性能分析工具进行分析,可以分析出程序对cpu使用率和内存使用情况等,
本次以cpu测试为例。
注:本次测试用的是vs2013,在vs2010里为启动性能向导。

使用vs自带的性能诊断工具第4张

使用vs自带的性能诊断工具第5张使用vs自带的性能诊断工具第6张

使用vs自带的性能诊断工具第7张

使用vs自带的性能诊断工具第8张
使用vs自带的性能诊断工具第9张
使用vs自带的性能诊断工具第10张使用vs自带的性能诊断工具第11张

从以上分析结果可以得出对函数内部具体代码的的cpu使用情况,由此在实际开发中,可以针对某个代码单独拿出进行分析,以找出消耗cpu的地方,
加以改进从而提高程序的效率。
性能诊断工具还有不少,如微软的CLR Profiler,还有WinDbg等,后续的博客会对这两个工具作介绍。

免责声明:文章转载自《使用vs自带的性能诊断工具》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇修改计算机名【转】IIS上的反向代理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

EFCore梳理

一、CodeFirst模式 官网:https://docs.microsoft.com/zh-cn/ef/core/get-started/overview/first-app?tabs=visual-studio 下面进行一个简单的示例。 代码:https://github.com/qiuxianhu/EFCoreSummary 1、创建一个.NETCo...

阿里云OSS存储

1.accessKeyId与accessKeySecret是由系统分配给用户的,称为ID对,用于标识用户,为访问OSS做签名验证。 2.Bucket是OSS上的命名空间,相当于数据的容器,可以存储若干数据实体(Object) 你可以按照下面的代码新建一个Bucket: /// <summary> /// 新建...

尚硅谷《谷粒商城项目总结》

1、前言 花了几天的时间把尚硅谷的视频项目看完了,跟着做了一遍,基本上没啥大的问题,有几个小问题也做了总结。 技术方面除了 vue/nacos 没用过,其他的基本都用过,我们公司实际开发中用的也就是这一套东西。 中间的不想看,可以直接点击目录,看总结,总结里有你针对此项目所有的总结及问题解决的说明 1.1技术栈 springcloud 统一配置中心:apo...

okhttp添加自定义cookie

    1 package cn.x.request; 2 3 import java.util.ArrayList; 4 import java.util.HashMap; 5 import java.util.List; 6 7 import okhttp3.Call; 8 import okhttp3.Cooki...

Android okHttp网络请求之Retrofit+Okhttp+RxJava组合

Retrofit介绍:   Retrofit和okHttp师出同门,也是Square的开源库,它是一个类型安全的网络请求库,Retrofit简化了网络请求流程,基于OkHtttp做了封装,解耦的更彻底:比方说通过注解来配置请求参数,通过工厂来生成CallAdapter,Converter,你可以使用不同的请求适配器(CallAdapter), 比方说RxJ...

使用jenkins的SSH Publishers远程执行

https://www.cnblogs.com/zoujiaojiao/p/12574016.html 使用jenkins的SSH Publishers远程执行 配置 SSH Servers 如图,系统管理->系统设置->SSH Servers 点击 往下翻到: 远程脚本功能说明 本次远程脚本需要实现:a.将WORKERSPACE下面的包传到...