zoukankan      html  css  js  c++  java
  • VS2010自带的性能分析工具分析.NET程序的性能

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

    下面以一个大家熟悉比较极端的例子,来说明编写代码时考虑性能的重要性。这里DebugLZQ用的是10.0版本的VS。

    示例程序代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace VS2010性能测试
    {
        class Program
        {
            static void Main(string[] args)
            {
                int start = Environment.TickCount;
                for (int i = 0; i < 1000; i++)
                {
                    string s = "";
                    for (int j = 0; j <200; j++)
                    {
                        s += "Outer index = ";
                        s += i;
                        s += " Inner index = ";
                        s += j;
                        s += " ";
                    }
                }
                int middle = Environment.TickCount;
                Console.WriteLine("Program part1 run for {0} seconds",0.001 * (middle  - start));
                //
                for (int i = 0; i < 1000; i++)
                {
                    StringBuilder s = new StringBuilder(); 
                    for (int j = 0; j <200; j++)
                    {
                        s.Append("Outer index = ");
                        s.Append(i);
                        s.Append("Inner index = ");
                        s.Append(j);
                        s.Append(" ");
                    }
                }
                int end = Environment.TickCount;
                Console.WriteLine("Program part2 run for {0} seconds", 0.001 * (end - middle));

                //
                Console.ReadKey();
            }
        }
    }

    差距就是这么大!

    我们可以使用VS自带的性能分析工具来分析这个程序。可以通过“分析”--“启动性能向导”来启动性能分析

    我们可以根据需要选择不同的分析方法

    面以“CPU采样”分析为例

    切换到函数视图

    定位到我们的源码:

    问题找到了~

    http://www.cr173.com/html/16133_1.html

  • 相关阅读:
    8、【转载】python enhanced generator - coroutine
    7、【转载】python yield generator 详解
    7、利用SAX编写程序解析Yahoo的XML格式的天气预报,获取天气预报
    6、urllib.request.Request类
    5、urllib.request.urlopen()
    重载内核的一份代码的学习
    分析
    CVE-2014-0282
    IOS逆向【5】GDB调试helloworld
    IOS逆向【4】.ipa安装
  • 原文地址:https://www.cnblogs.com/chen110xi/p/5647607.html
Copyright © 2011-2022 走看看