• C#测试程序运行时间


    一、用C#自带的StopWatch函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    using System.Diagnostics;
     
    namespace StopWatch
    {
        class Program
        {
            static void Main(string[] args)
            {
                Stopwatch sw = new Stopwatch();
                sw.Start();
                //这里填写要执行的代码
                sw.Stop();
                Console.WriteLine("总运行时间:" + sw.Elapsed);
                Console.WriteLine("测量实例得出的总运行时间(毫秒为单位):" + sw.ElapsedMilliseconds);
                Console.WriteLine("总运行时间(计时器刻度标识):" + sw.ElapsedTicks);
                Console.WriteLine("计时器是否运行:" + sw.IsRunning.ToString());
            }
        }
    }

    运行结果如下:
    总运行时间:00:00:00.0000013
    测量实例得出的程序运行时间(毫秒为单位):0
    总运行时间(计时器刻度标识):5
    计时器是否运行:False

    二、用API函数QueryPerformanceFrequency

    复制代码
     1 usingSystem;   
    2
    3 usingSystem.Threading;
    4
    5 classClass1
    6
    7 {
    8
    9 [System.Runtime.InteropServices.DllImport("Kernel32.dll")]
    10
    11 static extern bool QueryPerformanceCounter(ref longcount);
    12
    13 [System.Runtime.InteropServices.DllImport("Kernel32.dll")]
    14
    15 static extern bool QueryPerformanceFrequency(ref longcount);
    16
    17 [STAThread]
    18
    19 static void Main(string[] args)
    20
    21 {
    22
    23 longcount = 0;
    24
    25 longcount1 = 0;
    26
    27 longfreq = 0;
    28
    29 doubleresult = 0;
    30
    31 QueryPerformanceFrequency(reffreq);
    32
    33 QueryPerformanceCounter(refcount);
    34
    35 //需要测试的模块
    36
    37 intheisetoufa;
    38
    39 for(heisetoufa = 1; heisetoufa < 10000; heisetoufa++)
    40
    41 {
    42
    43 Console.WriteLine("" + heisetoufa + "");
    44
    45 if(heisetoufa == 5000)
    46
    47 {
    48
    49 Thread.Sleep(10000);
    50
    51 }
    52
    53 }
    54
    55 //需要测试的模块
    56
    57 QueryPerformanceCounter(refcount1);
    58
    59 count = count1 - count;
    60
    61 result = (double)(count) / (double)freq;
    62
    63 Console.WriteLine("耗时: {0} 秒", result);
    64
    65 Console.ReadLine();
    66
    67 }
    68
    69 }
    复制代码
  • 相关阅读:
    JQuery EasyUI属性和常见用法
    iOS 设置随意屏幕旋转
    iOS 打印系统字体
    iOS 实时监测网络状态(通过Reachability)
    UITableView上添加按钮,按钮点击效果延迟的解决办法
    ios下通过webservice获取数据
    (转发)InputAccessoryView的使用方法
    (转发)IOS动画中的枚举UIViewAnimationOptions
    (转发)IOS高级开发~Runtime(四)
    (转发)IOS高级开发~Runtime(三)
  • 原文地址:https://www.cnblogs.com/soundcode/p/3375681.html
Copyright © 2020-2023  润新知