社区
C#
帖子详情
***** 100分求助 函数耗费时间的问题 *****
sarcophile
2004-08-28 01:05:15
如何才能 精确地 得到一个函数或一个循环等 运行所耗费的时间?
如果在函数调用前和调用后分别读系统时间,然后相减,这样得到的结果很不精确,有什么更好的办法?
...全文
285
22
打赏
收藏
***** 100分求助 函数耗费时间的问题 *****
如何才能 精确地 得到一个函数或一个循环等 运行所耗费的时间? 如果在函数调用前和调用后分别读系统时间,然后相减,这样得到的结果很不精确,有什么更好的办法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qqchen79
2004-09-03
打赏
举报
回复
1. Process.TotalProcessorTime 显示了进程占用CPU的时间总和,不包括进程Idle的时间。
2. 一般的做法是重复函数调用N次,然后取平均,降低误差。
3. 这样的工具有很多:Rational Quantify, Intel VTune Analyzer... 如果是.NET程序,可以用CLR Profiler.
csq0516
2004-09-03
打赏
举报
回复
up
sarcophile
2004-09-03
打赏
举报
回复
danlog(龙帝) 的主意本是不错的,可有个问题:要跟踪一个 new DataSet()怕要一天
我是想有这么个工具就好了,比如类库或应用软件什么的
yingshis
2004-09-01
打赏
举报
回复
如果要求精确到ms级的话估计只能考虑用API
Declare Function timeGetTime Lib "winmm.dll" () As Long
上面的函数可按ms取得当前系统已运行的时间,该值返回一个长整形数字。
sarcophile
2004-09-01
打赏
举报
回复
单片机、dsp 等的仿真工具,包括一些很低端的,很多都可以实时统计或静态模拟出每一个函数使用的 cpu 时间
.net 对进程也可以做这样的统计
所以我想,有没有什么工具,对线程和函数也可以做这样的统计?
微启子
2004-09-01
打赏
举报
回复
这样最精确!
微启子
2004-09-01
打赏
举报
回复
全部转化成 底层语言 (汇编)
每句汇编的执行,cpu 时间都是知道了!
MOV 1个
Add 2个
根据cpu 时钟计算运算时间
dxphero
2004-09-01
打赏
举报
回复
你通过三个lable
第一个显示开始的时间
第二个显示结束的时间
第三个显示相差的时间
你在一个按钮下实现
程序写的时候也是这个顺序,你试一试
khpcg
2004-09-01
打赏
举报
回复
可否让她执行1000遍,求系统时间差再除
lexchou
2004-08-28
打赏
举报
回复
将你的线程的权限设为实时,来独占CPU
如楼上所说,.net弄这个要求极端精确是绝对不可能的。如果能像Delphi、C/C++内嵌汇编rdtsc指令,那才能绝对精确
ajqc
2004-08-28
打赏
举报
回复
极端精确是绝对不可能也无实际意义的,毕竟真实运行时不可能只有自己一个程序在运行,如果非要极端精确的话,试试按上面的方法去做,外加把你的程序的运行级别设到实时
sarcophile
2004-08-28
打赏
举报
回复
看了楼上的文章,很棒,非常感谢。
可是我还想解决前面提到的问题,就是有没有办法减去其他线程所消耗的时间?
比如楼上给出的例子是建立一个 DataTable 所花的时间,但如果此时有同等优先级的线程抢先,其中很可能有60%的时间是别的线程占用的,怎样把这部分时间减去?
曲滨_銘龘鶽
2004-08-28
打赏
举报
回复
如果要更精确可以看看我的文章
.Net 实现纳秒级别计算
http://blog.csdn.net/flashelf/archive/2004/06/23/24336.aspx
sarcophile
2004-08-28
打赏
举报
回复
============================================
一个问题是:如果该函数执行中,被其它线程打断,能不能不计其它线程运行的时间,只计本函数自己运行的时间?
===========================================
bomb_boy
2004-08-28
打赏
举报
回复
api系统时间已经比较好了
[DllImport("winmm.dll")]
static extern int timeGetTime();
sarcophile
2004-08-28
打赏
举报
回复
Any more ?
rbmnet
2004-08-28
打赏
举报
回复
很久以前见过,忘了具体在哪儿了
lexchou
2004-08-28
打赏
举报
回复
[DllImport("winmm.dll")]
static extern int timeGetTime();
这个的开销比楼上几个方案要小。
sarcophile
2004-08-28
打赏
举报
回复
zzcwhq(zzcwhq) 和 haiwangstar(南河三(天狼星上有没有普及C#))
我都说了这种效果不理想,想看看有没有更好的方法?
haiwangstar
2004-08-28
打赏
举报
回复
执行函数前
long before System.DateTime.Ticks;
...
执行函数后
long times = DateTime.Ticks - before;
加载更多回复(2)
clock
函数
的
时间
单位_【每日编程255期】程序运行
时间
本文介绍了如何利用C语言的clock()
函数
来计算程序的运行
时间
,包括CLK_TCK常数的作用,以及如何处理
时间
单位转换。示例展示了如何通过计算两个时钟打点之间的差值来获取
函数
运行的精确
时间
,并提供了处理不足1秒
时间
的四舍五入方法。
算法
时间
复杂度计算方法
本文介绍了算法的
时间
复杂度概念及如何推导
时间
复杂度的方法。包括常数阶、线性阶、对数阶、平方阶等多种常见的
时间
复杂度,并解释了它们在不同算法中的应用。
程序运行无限输出0_【每日编程255期】程序运行
时间
本文介绍了一种使用C语言的clock()
函数
测量程序运行
时间
的方法,并提供了一个具体实例,展示了如何计算
函数
运行
时间
并正确地格式化输出。
时间
复杂度
本文介绍了如何计算算法的
时间
复杂度,包括基本概念如语句频度、
时间
频度及常见的
时间
复杂度
分
类,并通过具体实例解释了不同类型的循环结构如何影响
时间
复杂度。
1026 程序运行
时间
—1030 完美数列
本文解析了多个程序设计题目,包括计算程序运行
时间
、打印沙漏图案、人口普查数据
分
析、检测旧键盘故障键及构建完美数列等
问题
,展示了实用的算法与编程技巧。
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章