+ -
当前位置:首页 → 问答吧 → [请教]计算效率问题

[请教]计算效率问题

时间:2008-03-29

来源:互联网

1. time 一个执行程序,给出:
real xxmxs
user yymzs
sys zzmzs
这3个数据之间有什么数学关系,real=user+sys?
2. 我的一个计算程序,需要大量的计算时间。但是我重复多次运行同一个计算程序,得到的CPU时间都有天壤之别。

我现在用的是intel的Core 2 Quad CPU,gentoo amd64系统。

大家说说,这个问题是系统的问题,还是我用的商业软件的问题?有什么方法可以用来诊断这个问题,谢谢。

作者: blackwhite   发布时间: 2008-03-29

1. real >= user+sys
real表示从开始到结束经历的时间,包含了其他进程执行(因为上下文切换)的时间

2. profile

作者: zhllg   发布时间: 2008-03-29

你可以在程序里面加上计时函数,来测试程序的时间,

我做过,不过我的结果是:同一个程序每次执行的时间还是由点不一样的,但是也就是相差20%左右。

作者: fender010   发布时间: 2008-03-29

real: 是进程运行的时间总量,嗯,包括上下文切换时间和期间其他进程所用的时间
user: 执行用户指令用的时间
sys: 进程执行内核程序所经历的时间

作者: swordman   发布时间: 2008-03-30

引用:
作者: fender010
你可以在程序里面加上计时函数,来测试程序的时间,

我做过,不过我的结果是:同一个程序每次执行的时间还是由点不一样的,但是也就是相差20%左右。
我的那个不是相差20%的问题,可能是1倍,甚至是2倍的问题。

作者: blackwhite   发布时间: 2008-03-30

想想海森堡的测不准原理,还有什么想不通!

作者: kangtian   发布时间: 2008-03-30

每次运行时开的其他软件都一样吗,
你试试什么软件都不开。
详细的时间函数等请看linux内核高级编程。
猜想,不知道你用的什么软件是否和ccache有关

作者: cbkid   发布时间: 2008-03-30

ccache只在编译时有用

作者: zhllg   发布时间: 2008-03-30

恩,我的意思不单单是指的是portage里的那个ccache
像运行浏览器浏览网页仍然与设置的缓存有关,
经楼上这么一说我到想到了一些东西,你把portage里的ccache
关了,从新编译同一个软件试试。看看时间相差大吗

作者: cbkid   发布时间: 2008-03-30

缓存是cache
ccache指的一个可以起cache作用的软件
不是一个概念

作者: zhllg   发布时间: 2008-03-31