LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1006|回复: 9

[请教]计算效率问题

[复制链接]
发表于 2008-3-29 00:02:08 | 显示全部楼层 |阅读模式
1. time 一个执行程序,给出:
real    xxmxs
user    yymzs
sys     zzmzs
这3个数据之间有什么数学关系,real=user+sys?
2. 我的一个计算程序,需要大量的计算时间。但是我重复多次运行同一个计算程序,得到的CPU时间都有天壤之别。

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

大家说说,这个问题是系统的问题,还是我用的商业软件的问题?有什么方法可以用来诊断这个问题,谢谢。
发表于 2008-3-29 00:33:44 | 显示全部楼层
1. real >= user+sys
real表示从开始到结束经历的时间,包含了其他进程执行(因为上下文切换)的时间

2. profile
回复 支持 反对

使用道具 举报

发表于 2008-3-29 10:33:57 | 显示全部楼层
你可以在程序里面加上计时函数,来测试程序的时间,

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

使用道具 举报

发表于 2008-3-30 00:10:25 | 显示全部楼层
real: 是进程运行的时间总量,嗯,包括上下文切换时间和期间其他进程所用的时间
user: 执行用户指令用的时间
sys: 进程执行内核程序所经历的时间
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-30 01:50:59 | 显示全部楼层
Post by fender010;1832335
你可以在程序里面加上计时函数,来测试程序的时间,

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

我的那个不是相差20%的问题,可能是1倍,甚至是2倍的问题。
回复 支持 反对

使用道具 举报

发表于 2008-3-30 13:19:15 | 显示全部楼层
想想海森堡的测不准原理,还有什么想不通!
回复 支持 反对

使用道具 举报

发表于 2008-3-30 15:31:09 | 显示全部楼层
每次运行时开的其他软件都一样吗,
你试试什么软件都不开。
详细的时间函数等请看linux内核高级编程。
猜想,不知道你用的什么软件是否和ccache有关
回复 支持 反对

使用道具 举报

发表于 2008-3-30 15:36:45 | 显示全部楼层
ccache只在编译时有用
回复 支持 反对

使用道具 举报

发表于 2008-3-30 15:46:14 | 显示全部楼层
恩,我的意思不单单是指的是portage里的那个ccache
像运行浏览器浏览网页仍然与设置的缓存有关,
经楼上这么一说我到想到了一些东西,你把portage里的ccache
关了,从新编译同一个软件试试。看看时间相差大吗
回复 支持 反对

使用道具 举报

发表于 2008-3-30 22:29:16 | 显示全部楼层
缓存是cache
ccache指的一个可以起cache作用的软件
不是一个概念
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表