我想看一个小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),你可以在流程退出之前立即复制它。