如何在进程完成执行后看到/ proc / / status的内容?

我想看一个小C程序的统计,但是是一个开始和结束的小程序。 (不是一些长时间运行的程序)。 我想从访问内存,caching命中,上下文切换等方面来改进这个程序。

/proc/[pid]/status中的参数很好,但是我找不到在执行后看到它们的方法。

如何在完成执行完成后看到这个文件?

在程序结束时抛弃这个system()调用,会在程序退出之前的最后一刻将/proc/[pid]/status打印到stdout。

 #include <stdlib.h> int main() { system("cat /proc/$PPID/status"); return 0; } 

外部程序,如valgrind +1。 您可以通过调试utils来捕获程序的退出,并在不修改程序的情况下检查完整的统计信息。

你不能。 proc文件系统是内核数据结构的一个接口。 一旦进程结束,关联的信息也不见了。

如果您希望提高应用程序的性能和内存占用量,您可能需要调查valgrind及其朋友(如cachegrind)。

/proc/$pid/只在进程运行时才存在。 如果你真的想在流程结束后看到它(而且我没有看到你会超越VmPeak),你可以在流程退出之前立即复制它。