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采样”分析为例

    切换到函数视图

    定位到我们的源码:

    问题找到了~

  • 相关阅读:
    Lesson 九、Eclipse中打jar包并使用jar包
    Lesson 八、eclipse开发中常用的快捷键
    Lesson 七、关键字final和多态,抽象类和接口
    Lesson 六、Java中的继承
    Lesson 五、Java中代码块和静态代码块的用法
    Lesson 四、Java工具类帮助文档的制作和帮助文档的使用
    Lesson 三、匿名对象的理解和使用
    Lesson 二:java.util.Scanner的使用
    Lesson 一:Windows 常见DOS命令的使用以及Java语言的环境配置
    插件新增
  • 原文地址:https://www.cnblogs.com/dekevin/p/5613767.html
Copyright © 2011-2022 走看看