C# 记录循环消耗时间

今天写了循环段代码,但是感觉好像性能很差的样子,就想看一下整个循环的执行时间,最开始我想到了DateTime.Now,但是诡异的是,如果我循环的次数比较少的话(少于30000次)就会发现2次时间间隔是一样的!无论是DateTime.Now.Tick还是DateTime.Now.TimeOfDay.ToString(),网上找了资料,好像是说DateTime.Now的精确度比较低,找了许久终于找见一个解决办法,直接贴代码

private static void Test()
        {
            do
            {
                Console.Write("个数:");
                int num = Convert.ToInt32(Console.ReadLine());
                Stopwatch sw = new Stopwatch();
                sw.Start();
                for (int i = 0; i < num; i++)
                {
                    int a = 1;
                }
                sw.Stop();
                Console.WriteLine("用时:" + sw.ElapsedTicks);
                Console.WriteLine("*******************************");
            } while (1 == 1);
        }
时间: 2024-10-02 17:08:43

C# 记录循环消耗时间的相关文章

一道面试题:用多线程求1000以内的素数有多少个?并给出消耗时间

我曾经去一个公司面试,遇到这么一个题目:求1000以内的素数有多少个?用多线程实现,并给出消耗时间.我想了半天,没有想出多线程的解决方案.今天因为机缘到了,我浅谈下我的解法. 这道题,显然得考虑两个问题: 1.多线程的问题 2.算法性能问题 有人觉得1000以内还考虑什么算法性能?这肯定很快.但是话说回来,这个都有必要用多线程吗?如果我们求10000000以内的素数有多少个?是不是必须考虑以上两个问题了?多线程和算法优化的目的都是为了提高程序执行的效率.我们首先来考虑算法问题,什么是素数?素数:

为QNetworkAccessManager添加超时提醒(自己记录一段时间里的下载字节数,用定时器去定期检测,从而判断是否超时)

在做更新,在测试异常的时候,在下载过程中,发现如果直接系统禁用了网络,会报错误,可以捕获.但是如果是第三方软件限制程序联网,问题来了. 程序会一直在那里等待,没有异常,也不发送QNetworkAccessManager::finsh和QNetworkReply::error和QNetworkReply::finsh信号. 所以动念头为下载加个超时,但是QNetworkAccessManager,QNetworkReply和QNetworkRequest都没有相关的设置函数.其实仔细想一下,也没有

django之创建第10-1个项目-图片上传并记录上传时间

1.百度云盘:django之创建第10-1个项目-图片上传并记录上传时间 2.主要修改的配置文件有3个,forms.views和models3个文件以及html 3.forms.py文件修改 #coding:utf-8 #这里定义html页面中用到的表单,常和views和models文件配合使用 """ >>> help(django) Help on package django: PACKAGE CONTENTS conf (package) contr

VBA记录当前系统时间并精确到毫秒

想做个功能,点一次按钮,就在A1记录一次当前系统时间,要精确到毫秒的.再点一次按钮就在A2显示,以此类推! 例如:这个功能可以用来做歌词记时间! Sub ttt() ActiveCell.Select tt = Timer h = Int(tt / 3600) m = Int((tt - 3600 * h) / 60) s = Int(tt - h * 3600 - m * 60) ss = Left(tt - Int(tt), 4) Selection.NumberFormatLocal =

C#检查一段代码的消耗时间

0.0 如果你想检查某一个函数循环的时间 System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch(); stopwatch.Start(); //这里是你想检测的时间 stopwatch.Stop(); System.TimeSpan timeSpan = stopwatch.Elapsed; double hours = timeSpan.TotalHours; double minutes = tim

timestamp ---自动更新修改时间 与 记录首次插入时间

自动更新修改时间: mysql> create table z(a int ,b timestamp on update current_timestamp); mysql> insert into z select 1,current_timestamp; mysql> select * from z; +------+---------------------+ | a | b | +------+---------------------+ | 1 | 2016-06-26 07:

js创建对象的四种方式以及消耗时间比较

// Property-less object console.time('zoop1'); var zoop = (function (numObjects) { var pooz = Object.create(null); for(var i = 0; i< numObjects; i++) { pooz[i] = Object.create(null); } return pooz; })(1000000); console.timeEnd('zoop1'); // Using Obje

sqlite显示查询所消耗时间

sqlite默认关闭了显示查询所耗时间,需要手动打开,如下: sqlite>.show        // 显示常用的命令 sqlite>.help // 显示所有命令 sqlite>.timer on // 打开显示执行操作所消耗时间

对c语言系统库函数、堆排序、希尔排序、折半插入排序、快速排序消耗时间的比较

#include <stdio.h> #include <time.h> #define N 100000 /*库比较函数:qsort(int *base,int n,int struct_size,int (*compare)(const void *,const void *))中的比较函数*/ int compare(const void *first, const void *second) { if (*(int *)first > *(int *)second)/