- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想跟踪给定命令 执行的磁盘 io。 getrusage()
可以在C中使用;我能以某种方式在命令行中获得相同的结果吗?
time
和 times
显示用户和系统花费的时间,后者包括自己/ child 的故障,所有其他位如何,如磁盘 io、spwap、峰值内存?
一个例子:
[user@hsot ~]$ time sqlite3 haha.db vacuum
real 1m6.439s
user 0m7.407s
sys 0m10.000s
# what I'd like in addition
blocks in 1228349
blocks out 34523
maxrss 45634953
...
最佳答案
理想情况下,像这样的东西应该内置到 bash(或您正在使用的任何 shell)中。不幸的是,AFAIK 没有这样的东西。
但是使用 getrusage() 创建自己的包装器是微不足道的:
#include <stdio.h>
#include <stdlib.h>
#include <sys/resource.h>
int main(int argc, char** argv) {
system(argv[1]);
struct rusage ru;
getrusage(RUSAGE_CHILDREN, &ru);
printf("\nblocks in:\t%li\nblocks out:\t%li\nmaxrss:\t\t%li\n",
ru.ru_inblock, ru.ru_oublock, ru.ru_maxrss);
}
编译它:
$ gcc -o process_io process_io.c
并使用它:
$ ./process_io "dd if=/dev/urandom of=foobar bs=1k count=10000"
10000+0 records in
10000+0 records out
10240000 bytes (10 MB) copied, 0.922149 s, 11.1 MB/s
blocks in: 0
blocks out: 80128
maxrss: 1676
关于bash - 相当于 `getrusage()` 的命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24304486/
我正在尝试获取 Ubuntu 上进程消耗的 CPU 时间。据我所知,有两个函数可以完成这项工作:getrusage() 和 clock_gettime(CLOCK_PROCESS_CPUTIME_ID
我正在开发一个 C 程序,其中我必须 fork() 一个进程并使用 getrusage() 函数来打印用户时间和内核时间子进程。 这是我的代码: #include #include #includ
我目前正在使用 getrusage 来告诉我我在应用程序的事件循环中花费了多少时间。 我想知道这将如何受到 hibernate 的影响。是否报告了休眠时间?或者作为系统时间?这是在 Posix 的某个
我正在尝试使用套接字将 getrusage 函数实现到我的客户端服务器程序中,所有这些都在 FreeBSD 上运行。我想打印出处理器时间使用情况和内存使用情况。 我已尝试执行以下代码,但得到的输出是
我正在尝试确定我的 PHP 脚本的 CPU 使用率。我刚找到 this article其中详细介绍了如何查找系统和用户 CPU 使用时间(第 4 节)。 但是,当我尝试这些示例时,我得到了完全不同的结
我正在尝试使用以下代码通过 getrusage 系统调用测量子进程使用的内存量 #include using std::cout; using std::endl; #include #inclu
我正在尝试使用 usage 测量各种函数调用的资源使用时间(用户和系统)。我发现我得到的结果大约为 10 毫秒,例如 0 秒、70000 秒、10000 秒等。如果有办法为 getrusage 设置精
我想跟踪给定命令 执行的磁盘 io。 getrusage() 可以在C中使用;我能以某种方式在命令行中获得相同的结果吗? time 和 times 显示用户和系统花费的时间,后者包括自己/ child
这个 C++ 程序给出了可变的结果。有时变化很大。我调用 getrusage() 一次以获得开始时间。然后我循环调用 rand() 500000000 次。然后我再次调用 getrusage() 并输
作为 this question 的延续我想知道我是否可以获得一些关于如何 make use of getrusage 的简单示例代码.我想用它来查找进程使用的 CPU 时间,最好是从 PID。 我正
在一个为了通过减法得到一个任务的时间而调用了两次getrusage()的程序中,曾经看到过一个断言,说任务的时间应该是非负的,失败.当然,这不容易复制,尽管我可以编写一个专门的程序来更容易地复制它。
我正在尝试了解如何 int getrusage(int who, struct rusage* usage) 为了计算我的一个程序的运行时间而工作。 我 Handlebars 册页改红了,大概 10
我想了解 Linux 中 cpu 时间是如何计算的。特别是,我想关注这个问题 clock_gettime和 getrusage .我想知道这两个有什么关系。 一个会调用另一个吗? 它们都依赖于相同的底
我在 Linux 中编写了两个系统调用,并在系统调用中使用 getrusage 测量了它们的资源使用情况。然而,我得到的大多数结果都是 0,我不确定这是否有意义。这是输出: [ 4103.028728
我正在编写一个 shell,我需要在其中同时启动多个子进程并记录系统时间和用户时间。 到目前为止,我能够做到。唯一的问题是我正在使用 wait4 获取子程序使用的系统资源并将其放入我的名为 usage
所以我想知道当前线程到目前为止执行的时间。我正在尝试为此使用 getrusage(RUSAGE_THREAD, &r_usage);。这是我的困惑: 1- 此函数返回的时间是否包括线程被阻塞(例如,在
当我运行具有两个不同部分的程序时,我试图获取页面错误。 我所做的是使用两种矩阵乘法方法进行一些运算,并尝试找出哪一种方法会导致更多页面错误。 /Operations for method 1 getr
getrusage() 可以显示进程的子进程使用的内存量。我正在创建一个 shell,我将从中启动几个子程序。 getrusage() 将报告所有这些 child 正在使用的内存总量,这不是我想要的。
我正在尝试使用 getrusage(.)和最大驻留集大小 (maxrss) 以检查内存泄漏。但是,当我故意尝试制造泄漏时,maxrss 不会改变。也许我对 maxrss 的理解还不够深入。这是代码:
我想测量执行某些代码所需的系统时间。为此,我知道我会将所述代码夹在对 getrusage() 的两次调用之间,但我得到了一些意想不到的结果...... #include #include #inc
我是一名优秀的程序员,十分优秀!