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

static void Main( string[] args)
{
Test1();
Test2();
Console.ReadKey();
}
protected static void Test1()
{
Stopwatch sp = new Stopwatch();
sp.Start();
string str = "" ;
for (int i = ; i < ; i++)
{
for (int j = ; j < ; 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 void Test2()
{
Stopwatch sp = new Stopwatch();
sp.Start();
StringBuilder str = new StringBuilder();
for (int i = ; i < ; i++)
{
for (int j = ; j < ; 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());
}

先运行一下查看运行结果如下:

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


 

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

使用vs自带的性能诊断工具的更多相关文章

  1. VS2010自带的性能分析工具分析.NET程序的性能

    这篇博文给大家分享的是,如何使用VS自带的性能分析工具来分析我们编写的.NET程序,一边找出程序性能的瓶颈,改善代码的质量.在实际开发中,性能真的很重要,往往决定一个产品的生死~良好的用户体验的基础之 ...

  2. .NET Core CLI 的性能诊断工具介绍

    前言 开发人员的.NET Core项目上线后,经常会出现各种问题,内存泄漏,CPU 100%,处理时间长等, 这个时候就需要快速并准确的发现问题,并解决问题, 除了项目本身的日志记录外,NET Cor ...

  3. .NET Core-全局性能诊断工具

    前言: 现在.NET Core 上线后,不可避免的会出现各种问题,如内存泄漏.CPU占用高.接口处理耗时较长等问题.这个时候就需要快速准确的定位问题,并解决. 这时候就可以使用.NET Core 为开 ...

  4. Java自带的性能监测工具用法简介——jstack、jconsole、jinfo、jmap、jdb、jsta、jvisualvm

    JDK内置工具使用 一.javah命令(C Header and Stub File Generator) 二.jps命令(Java Virtual Machine Process Status To ...

  5. MongoDB性能诊断工具

    1. mongostat * dirty 超过20%时阻塞新请求 * used 超过95%时阻塞新请求 * qrw 排队的请求 * conn 连接数量 mongostat:用于了解MongoDB运行状 ...

  6. Mysql自带profiling性能分析工具使用分享

    1. show variables like '%profiling%';(查看profiling信息)       2. set profiling=1;(开启profiling)   3. 执行S ...

  7. Linux性能诊断工具

    vmstat:虚拟内存状况 –swpd   free  buff  cache   si  so   in   cs 參考:http://www.cnblogs.com/ggjucheng/archi ...

  8. <JVM下篇:性能监控与调优篇>03-JVM监控及诊断工具-GUI篇

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

  9. <JVM下篇:性能监控与调优篇>01-概述篇-02-JVM监控及诊断工具-命令行篇

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

随机推荐

  1. 技术英文单词贴--P

    P pagination 分页,页码 parse 解析,从语法上描述或分析 partial 局部的 pattern 模式 populate 填充,居住于,构成人口 precedence 优先 pref ...

  2. mORMot 数据库操作

    程序中要使用数据库,首先是引用SynCommons, SynDB单元,根据不同的数据库类型,简单举几个例子: 1 使用Access数据库,引用SynCommons, SynDB,SynOleDb三个单 ...

  3. PHP开发模式之代理技术

    在实际开发中,我们经常要调用第三方的类库如SOAP服务等.使用这些第三方 组件并不难,最麻烦的莫过于调用了,一般的调试手段最方便的莫过于记日志了. 示例: 假如有以下第三方类库. // filenam ...

  4. RVM 实用指南

    rvm是一个命令行工具,可以提供一个便捷的多版本ruby环境的管理和切换. https://rvm.io/ 如果你打算学习ruby/rails, rvm是必不可少的工具之一. 这里所有的命令都是再用户 ...

  5. mysql远程连接:ERROR 1130 (HY000): Host '*.*.*.*' is not allowed to connect to this MySQL server解决办法

    安装完MySQL后,远程连接数据库的时候,出现 ERROR 1130 (HY000): Host '192.168.0.1' is not allowed to connect to this MyS ...

  6. 【半平面交】bzoj2618 [Cqoi2006]凸多边形

    #include<cstdio> #include<cmath> #include<algorithm> using namespace std; #define ...

  7. Remote Desktop Connection from Windows 7 to Ubuntu 12.04

    $sudo apt-get install xrdp $cd ~ $sudo vim .xsession gnome-session --session=ubuntu-2d 在windows下进行远程 ...

  8. testng.xml顺序执行多个case配置

    testng.xml顺序执行多个case配置 项目结构如图:

  9. Week1 Java 基础知识

    JDK=JRE+Tools   JRE=JVM+API 封装:1.模块化:将属性和行为封装在类中,程序定义很多类:2.信息隐蔽:将类的细节部分隐藏起来,用户只通过受保护的接口访问某个类. 继承:父类和 ...

  10. 使用的组件:Web Uploader

    Web UploaderWebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势, ...