[问题]计算CPU执行程式时间

楼主: ming790925 (MING)   2015-04-12 17:02:41
文章分类提示:
问题
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
我写了一个 simulation 方法的程式
想与某一方法比较程式执行时间
因此我搜寻了一下几个可以计算时间差的函数:
proc.time()
system.time()
Sys.time()
我研究一下他的说明看起来好像大同小异
但算出的时间有时却不太相同
想请教一下各位大大
在比较两程式执行时间 会偏好用哪种计算方法比较适当能说服人呢?
感激!!
[程式范例]:
proc.time()
system.time()
Sys.time()
[环境叙述]:
> sessionInfo()
R version 3.0.0 (2013-04-03)
Platform: x86_64-w64-mingw32/x64 (64-bit)
[关键字]:
CPU Time, System Time, compute, function time
作者: celestialgod (天)   2015-04-12 17:20:00
system.time是用proc.time包起来...Sys.time只有现实时间,CPU时间应该不一定一致
楼主: ming790925 (MING)   2015-04-12 17:28:00
sorry 内文程式打成城市 请见谅!!
作者: celestialgod (天)   2015-04-12 17:34:00
你可以按E修改
楼主: ming790925 (MING)   2015-04-12 17:37:00
谢! 所以CPU每次执行时间都不同吗?那该怎么比较好呢?
作者: celestialgod (天)   2015-04-12 17:59:00
看目的吧,你比程式效率通常是用proc.timeor system.time
楼主: ming790925 (MING)   2015-04-13 19:41:00
请教一下:proc.time会算三个时间为user/system/elapse我对电脑背景没有那么足够所以有点分不出前两个差别,我算出结果觉得elapsed算的跟Sys.time好像是一样的所以我想我应该是要用user/system这两个其中之一,但我看不太懂他的差异 不知可否有人给点提示 THXhttp://www.ats.ucla.edu/stat/r/faq/timing_code.htm我看这个也实在是雾煞煞阿...
作者: celestialgod (天)   2015-04-13 22:21:00
简单来说,SYSTEM是cpu时间,ELAPSED等同用Sys.timeuser就是你执行程式的时间画一个TIME LINE来看,前后段就是USER TIME中段是程式执行时间(cpu TIME)这两个时间相加就是elapsed time

Links booklink

Contact Us: admin [ a t ] ucptt.com