当我们在调试,优化我们的代码的时候,想知道某段代码的真正的执行时间,或者我们怀疑某段代码,或是某几段代码执行比较慢,

需要得到具体的某段代码的具体执行时间的时候。有一个很好用的类Stopwatch。

Stopwatch 类在 System.Diagnostics命名空间下。可以用来做分析.net代码块的基本工具。

例如:

System.Diagnostics.Stopwatch timerObj = new System.Diagnostics.Stopwatch();timerObj.Start();Decimal totalDec = 0;
int limit = 1000000;
for (int i = 0; i < limit; ++i)
{
totalDec = totalDec + (Decimal)Math.Sqrt(i);
}
timerObj.Stop();
Console.WriteLine(“Sum of square roots: {0}”,totalDec);
Console.WriteLine(“Milliseconds elapsed : {0}”,timerObj.ElapsedMilliseconds);
Console.WriteLine(“Time elapsed : {0}”, timerObj.Elapsed);

输出结果:
Sum of square roots : 666666166.45882210823608
Milliseconds elapsed: 282
Time elapsed : 00:00:00.2828692

当你用Stopwatch 来调试你的时候,你可以使用 IDisposable 接口来自动关掉Stopwatch
1.定义一个自定义的Stopwatch类,继承System.Diagnostics.Stopwatch 和 IDisposable

class AutoStopwatchDemo : System.Diagnostics.Stopwatch, IDisposable
{
public AutoStopwatchDemo()
{
Start();
}
public void Dispose()
{
Stop();
Console.WriteLine(“Elapsed : {0}”, this.Elapsed);
}
}

2. 在你要调试的代码块里面使用

using (new AutoStopwatchDemo())
{
Decimal totalObj2 = 0;
int limitObj2 = 1000000;
for (int i = 0; i < limit2; ++i)
{
totalObj2 = limitObj2 + (Decimal)Math.Sqrt(i);
}
}

此外,Stopwatch除了有Start()和Stop()方法,还有 Reset() 方法

转载于:https://www.cnblogs.com/zhangkeyu/p/6663850.html

使用.net Stopwatch class 来分析你的代码相关推荐

  1. 手机自动化测试:Appium源码分析之跟踪代码分析四 1

    手机自动化测试:Appium源码分析之跟踪代码分析四 控制器模块 // Appium webserver controller methods // https://github.com/hugs/a ...

  2. 20189208 2018-2019-2 《移动平台开发实践》分析小组项目代码

    20189208 2018-2019-2 <移动平台开发实践>分析小组项目代码 一.代码的组成部分 app: manifests AndroidManifest.xml java com. ...

  3. 【Matlab 控制】仿真含时滞多智体一致性分析,附代码

    Matlab 仿真含时滞多智体一致性分析,附代码 系统结构如下图所示: clear; clc; % 2014_多智能体网络的一致性问题研究_纪良浩 % 此为Paper中的示例代码 % 例2.1: A ...

  4. 【Matlab 控制】仿真多智体一致性分析,附代码

    Matlab 仿真多智体一致性分析,附代码 本例程所有参数及状态均采用最简单的形式,使更容易理解一致性的收敛过程. 所使用拉普拉斯矩阵图为如下所示的无向图(undirected graph) 输入: ...

  5. 数学建模——层次分析法Python代码

    数学建模--层次分析法Python代码 import numpy as np class AHP: """ 相关信息的传入和准备 """ d ...

  6. Adaboost算法原理分析和实例+代码(简明易懂)

    Adaboost算法原理分析和实例+代码(简明易懂) [尊重原创,转载请注明出处] http://blog.csdn.net/guyuealian/article/details/70995333   ...

  7. python做数据可视化的代码_Python数据可视化正态分布简单分析及实现代码

    Python说来简单也简单,但是也不简单,尤其是再跟高数结合起来的时候... 正态分布(Normaldistribution),也称"常态分布",又名高斯分布(Gaussiandi ...

  8. python解常微分方程龙格库_求解常微分方程组初值问题的龙格库塔法分析及其C代码...

    求解常微分方程组初值问题的 龙格库塔法分析及其 C 代码 1 .概 述 由高等数学的知识可知,一些特殊类型的常微分方程(组)能够求出给定初 始值的解析解, 而在科学与工程问题中遇到的常微分方程 (组) ...

  9. 基于MODIS数据的NDVI与LST相关性分析(IDL代码实现)

    1 数据预处理 (1)数据提取 我们可以选取2018年5月初华东地区MODIS中的MOD11A2和MOD13A2的16天合成LST和NDVI产品数据,下载地址:MODIS数据下载 网站下载数据需要注册 ...

最新文章

  1. js设置div透明度
  2. php 转换数组的字符集,PHP 自动转换字符集(支持字符串和数组)功能实例
  3. 数学建模 分支限界算法求解整数规划原理以及编程实现
  4. jQuery UI应用--滑块Slider
  5. php外卖系统源码单店,网上订餐系统 v3.1 单店版
  6. 去掉iframe的水平滚动条而保留垂直滚动条
  7. 互联网时代的发展给实体业都造成了不小的冲击
  8. 基于虚拟日志压缩的数据同步方案
  9. btoa java,JavaScript用btoa和atob来编码解码Base64
  10. FreeBSD 恢复root密码-FreeBSD 5 或都之后版本.
  11. 【mongoDB实战】mongoDB数据导入和导出
  12. 优雅的校验参数-javax.validation
  13. 通过xmlhttp实现-报告归档
  14. 构建之法第四章学习心得
  15. 深圳数据分析认证(CPDA)含金量怎么样?
  16. AutoIt上路03-添加工具栏
  17. linux netcdf编译,Netcdf4安装指南
  18. hEi2ANzja!;¥WgxjckTxiGZ¥ mp4_限时特价 | ¥499起享深圳东部华侨城两日双人游,住吃玩都有了!...
  19. java 23种设计模式详解
  20. 第一章 MySQL数据库的简介

热门文章

  1. angular ajax get post 参数,Angular的Post 传递参数问题及解决方法
  2. 程序如何在两个gpu卡上并行运行_深度学习分布式训练相关介绍 - Part 1 多GPU训练...
  3. c语言 链表_C语言编程第22讲——单向有序链表的C语言实现
  4. VS2010报错 error:LINK1123:转换到COF期间失败,文件无限或损坏
  5. Linux怎么处理binray文件,Linux下如何反汇编arm raw binary文件
  6. python数据库连接池使用
  7. java bitset_Java BitSet and()方法与示例
  8. bootstrap网格系统_如何使用Bootstrap网格系统?
  9. Python operator.le()函数与示例
  10. Java ObjectOutputStream writeFloat()方法与示例