问题标签 [rusage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
78837 浏览

timer - UNIX 编程。struct timeval 如何打印它(C 编程)

我正在尝试打印 timeval 类型的值。实际上我可以打印它,但我收到以下警告:

此行有多个标记

  • 格式“%ld”需要类型“long int”,但参数 2 的类型为“struct timeval”</li>

该程序编译并打印值,但我想知道我是否做错了什么。谢谢。

其中用法是类型

0 投票
1 回答
1879 浏览

c++ - getrusage() 获取系统时间、用户时间。Unix 编程帮助

我正在编写一个shell,我需要一次启动多个子进程并记录系统时间和用户时间。

到目前为止,我能够做到。唯一的问题是我正在使用 wait4 来获取子程序使用的系统资源并将其放入我的名为 usage 的 rusage 结构中。

如何同时启动所有进程并跟踪用户和系统时间?我可以删除 wait4() 系统调用并在外部使用它来循环,这样我就可以让父级等待,但如果我这样做,那么我只能记录最后一个进程的时间,而不是全部。

你知道我该如何解决这个问题吗?

0 投票
1 回答
489 浏览

timer - rusage() 以秒或毫秒为单位?

您好我正在尝试获取由外壳分叉的应用程序的系统时间和用户时间。我只是不确定我得到什么样的时间,几秒钟?毫秒?有人知道吗?

这是我得到的结果示例。我有几秒钟的时间,但我不太确定

0 投票
1 回答
1181 浏览

python - 测量孩子而不是孙子的 CPU 使用率

这可能是一件显而易见的事情,但我似乎无法弄清楚如何去做。

假设我产生了一个这样的过程:

有什么办法可以测量这个孩子的 CPU 使用率,而不是孙子的 CPU 使用率?

给我所有的孩子和孙子。

0 投票
2 回答
1062 浏览

linux - 添加标头如何增加可移植性?(系统/时间.h)

我刚刚在getrusage手册页中注意到这一行:

<sys/time.h>现在不需要包含,但增加了可移植性。(确实,struct timeval 定义在<sys/time.h>

什么?由于struct rusagecontainsstruct timeval作为成员,肯定 sys/resource.h 必须包含 sys/time.h 否则类型将不完整且无法使用?

这个评论怎么可能有意义?怎么可能从来没有必要?可移植性如何得到帮助?

0 投票
1 回答
10558 浏览

c - getrusage 的工作原理以及 rusage 结构中的真正内容是什么?

我试图了解如何

工作以计算我的一个程序的运行时间。
我红了手册页,可能 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}

所以,谁能给我解释一下或者给出一些很好的链接来解释这个?
我将不胜感激。

0 投票
2 回答
358 浏览

c - Ubuntu 使用错误

我正在将一些非常老的(和大量的)代码从 CentOS 6 移植到 Ubuntu 14.04。注意,我已经安装了预期的旧版本 gcc、固定的链接器引用等。

我的构建尝试正在进行中,但我被困在一件事上。有一个 C 文件试图创建 type 的结构rusage,但是 Ubuntu 环境给了我以下错误:error: storage size of 'rusage' isn't known

据我所知,我所有的路径看起来都是正确的。我什至查看了每个系统上的 time.h 和 resource.h 系统文件(它可以工作的 CentOS 和不工作的 Ubuntu)。似乎有对实际定义 rusage 的 wait.h 文件的引用,只是一样。

我的 Ubuntu 环境中还可能缺少什么?

编辑:添加更多 MCVE-ish 细节...

我的构建因以下错误而停止:

vmodem.c:6747: error: storage size of 'rusage' isn't known

文件中的那一行很简单:

所需的包含也都在该文件中(<sys/time.h>,<sys/wait.h>等)

不知道在这种情况下我还能提供什么...

0 投票
1 回答
83 浏览

linux - 是否有任何替代方法可以在 shell 脚本中使用 wait3 来获取 rusage 结构?

我试图监视子进程的峰值内存使用情况。time -v 是一个选项,但它在 solaris 中不起作用。那么有没有办法从 shell 脚本中获取 rusage 结构中的详细信息?

0 投票
1 回答
364 浏览

c - 使用 wait4() 不显示已完成子进程的 CPU 时间

我有一个简单的函数,它创建一个子进程,等待它完成并打印 CPU 系统和用户时间。

问题是,即使我通过sleep 10as**arg并且父进程等待子进程完成,它仍然在系统和用户 CPU 时间中显示 0.000000。

我究竟做错了什么?谢谢您的帮助。

0 投票
1 回答
496 浏览

linux - macOS 和 Linux 上 get rusage.maxrss 的奇怪值

目前我正在用golang编写在线判断系统。为了检测用户程序内存使用情况,我决定分析cmd.ProcessState.SysUsage()和检查Rusage.Maxrss. 现在我很困惑,因为当我尝试在我的 mac 上运行它时,Rusage.Maxrss调用结果很奇怪

这是我在 macOS 和 Linux 上运行的代码(它已简化,Getrusage()当前进程的此代码调用)并且我得到了结果:

以下是我得到的结果

  • 苹果系统: /li>
  • Linux/Ubuntu-18.04: /li>

你能解释一下为什么它会返回这么大的价值吗?正如我所看到的 macOS 手册和 linux 手册页:rusage.Maxrss(或rusage.ru_maxrss来自C语言)以千字节为单位,所以在 macOS 上我的代码使用了 ~2GB 的内存,而在 Linux 上它只使用了 ~20MB?

这是一个很好的决定来衡量用户程序使用的内存rusage.Maxrss 还是有更好的方法?