等效于`getrusage()`的命令行

迪玛·蒂斯内克(Dima Tisnek)

我想跟踪磁盘IO,一个给定的命令一样。getrusage()可以在C语言中使用;我能以某种方式在命令行中得到相同的结果吗?

timetimes显示用户和系统花费的时间,后者包括自己/孩子的故障,其他所有位(例如磁盘io,swap,峰值内存)又如何呢?

一个例子:

[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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

等效于`getrusage()`的命令行

来自分类Dev

等效于命令行上的退出

来自分类Dev

Windows命令行是否等效于Linux中的“时间”?

来自分类Dev

等效于Windows 8.1的wget命令行

来自分类Dev

命令行等效于cmake的find_package?

来自分类Dev

对于Linux Mint,等效于'mintupdate'的命令行是什么?

来自分类Dev

在Windows上是否有等效于wmctrl的命令行实用程序

来自分类Dev

7zip命令行是否等效于这些gui设置?

来自分类Dev

等效于使用nautilus连接到samba驱动器的命令行是什么?

来自分类Dev

命令行等效于Git的IntelliJ IDEA“ VCS→更新项目”

来自分类Dev

命令行等效于Linux上的MacOSX stat -f“%m%t%Sm%N”吗?

来自分类Dev

7个zip命令行等效于资源管理器扩展

来自分类Dev

等效于“ at”命令的PowerShell

来自分类Dev

等效于curl命令

来自分类Dev

突触中某些任务的命令行等效项

来自分类Dev

寻求等效的 wsl.exe 命令行

来自分类Dev

.deb等效于.rpm命令

来自分类Dev

WebRequest等效于CURL命令

来自分类Dev

等效于CURL命令的Python

来自分类Dev

什么是等效于DateTime的命令?

来自分类Dev

.deb等效于.rpm命令

来自分类Dev

WebClient等效于CURL命令

来自分类Dev

在Puppy Linux中,什么命令行与apt-get命令等效?

来自分类Dev

在Puppy Linux中,什么命令行与apt-get命令等效?

来自分类Dev

Erlang命令行

来自分类Dev

命令行过程

来自分类Dev

合并命令行

来自分类Dev

命令行参数

来自分类Dev

命令行索引