查看系统运行时间的两种方法
【法1】
system.time()
> system.time(apply(icol,1,sampnumberfunction))
用户 系统 流逝
0.16 0.01 0.17
这是计算机操作系统中说明运算时间的概念,
“用户”是消耗在应用程序(非操作系统部分)执行的时间,
“系统”是底层操作系统执行(例如磁盘读写等)部分的时间,
“流逝”是经过的总时间(可以认为是前两者的总和)。
一般优化时主要关注“用户”的时间。
https://cos.name/cn/topic/112434/ 帖子:
时间 |—a——————————————-|
启动 |—b———->|
并行CPU1 |—-c—>|
调用系统底层(比如磁盘读写) |–d–>|
并行CPU1底层返回后继续执) |–e–>|
并行CPU2 |—-f—————–>|
并行返回调用并最终结束 |—g–>|
这里 elapsed 应该就是 a;user 是 b + c + e + f + g;system 是 d。所以在多核情况下,user 是可能超过 elapsed 值的。
【法2】
ptm <- proc.time();ptm
for (i in 1:10000) x <- rnorm(1000)
proc.time()-ptm
【法1】
system.time()
> system.time(apply(icol,1,sampnumberfunction))
用户 系统 流逝
0.16 0.01 0.17
这是计算机操作系统中说明运算时间的概念,
“用户”是消耗在应用程序(非操作系统部分)执行的时间,
“系统”是底层操作系统执行(例如磁盘读写等)部分的时间,
“流逝”是经过的总时间(可以认为是前两者的总和)。
一般优化时主要关注“用户”的时间。
https://cos.name/cn/topic/112434/ 帖子:
时间 |—a——————————————-|
启动 |—b———->|
并行CPU1 |—-c—>|
调用系统底层(比如磁盘读写) |–d–>|
并行CPU1底层返回后继续执) |–e–>|
并行CPU2 |—-f—————–>|
并行返回调用并最终结束 |—g–>|
这里 elapsed 应该就是 a;user 是 b + c + e + f + g;system 是 d。所以在多核情况下,user 是可能超过 elapsed 值的。
【法2】
ptm <- proc.time();ptm
for (i in 1:10000) x <- rnorm(1000)
proc.time()-ptm