【发布时间】:2014-05-30 11:30:18
【问题描述】:
tms_utime 和 tms_stime 到底有什么区别?我指的是 POSIX times() 使用的 struct tms
功能。 utime中是否包含数据缓存时间?数据缓存时间可以单独测量吗?
PS:我使用的是 Linux-Ubuntu。例如,我正在使用我的 C++ 程序求解一个大型稀疏线性方程组。
【问题讨论】:
-
您可能需要提供更多上下文。 utime 可能是在用户空间执行程序所花费的时间,而 stime 是内核代表您的程序执行工作所花费的时间。但是,这是一个猜测,因为您没有提供足够的上下文来给出一个好的答案。
-
嗯,我是那种对计算机科学知之甚少的业余程序员。 :) 我需要提供什么样的上下文?我正在运行一个 C++ 程序来进行一些工程模拟。
-
您需要提供的上下文是您计划从哪里获取
utime和stime值(如果它们是结构成员),或者如果您指的是两个不同的系统调用,或者......如果你想引用函数,在它们的名字后面添加括号很简单(stime()和utime()),这将大大有助于消除你所指的歧义。这也是XY Problem。如果您解释了您想要做什么并询问是否有任何一个功能可以帮助您解决这个问题,您会做得最好。 -
utime和stime我提到的是tms_utime和tms_stime来自<sys/times.h>,请看这个链接:pubs.opengroup.org/onlinepubs/009695399/functions/times.html。 -
好的;有了这个,我的第一条评论(或多或少)是准确的。
tms_utime元素是执行代码或 C 库中的代码所花费的时间。tms_stime元素是内核代表您执行代码所花费的时间。 (tms_cutime和tms_cstime分别是所有已退出子进程的tms_utime和tms_stime的总和 - 请参阅基本原理评论。)