【发布时间】:2015-02-19 13:36:53
【问题描述】:
我试图了解如何
int getrusage(int who, struct rusage* usage)
工作是为了计算我的一个程序的运行时间。
我把手册页弄红了,可能 10 次,但仍然无法得到它。试图在网上找到一些东西,但除了关于这个函数的手册页什么都没有找到。
我不清楚的是存储在 rusage 结构中的内容 - 手册页不是很清楚 - 所以我试图使用调试器运行它并直接查看里面的内容,但仍然不明白,特别是这两个结构 - timeval ru_utime 和 timeval ru_stime - 是如何工作的。
它们里面的内容假设不同的值,有时为 0,有时为 2000 等。
我运行了一个带有 for 循环的简单程序,该循环不断分配和释放内存。我用秒表实际查看需要多少时间,花了 5.23 秒。但我在这些结构中看到的似乎完全不相关:
循环之前:
ru_utime = { tv_sec = 0, tv_usec = 1000}, ru_stime = { tv_sec = 0, tv_usec = 1000}
循环后:
ru_utime = { tv_sec = 4, tv_usec = 677000}, ru_stime = { tv_sec = 0, tv_usec = 2000}
所以,任何人都可以向我解释这个或提供一些好的链接在哪里这解释清楚了吗?
将不胜感激。
【问题讨论】:
标签: c timeval getrusage rusage