簡體   English   中英

測量Linux中的進程統計信息

[英]Measuring process statistics in Linux

我正在構建編程競賽軟件。 用戶的程序由我們的判斷系統接收,並通過編譯並通過fork()和exec()運行來評估。 父進程等待子進程(提交的進程)退出,然后清除它。

為了提供有關程序運行的有用信息,我想測量程序使用的CPU時間和峰值內存。 Linux內核是否跟蹤這些值? 有沒有其他方法來獲取此信息?

如果調用wait4()系統調用以在子struct rusage完成時重新獲取子struct rusage ,它將使用子ru_utime的資源使用來填充struct rusage結構( ru_utimeru_stime保存子ru_utime使用的用戶和系統CPU時間)。

您可以使用getrusage()acct()此處提供更多信息 )系統調用

一種低技術(但簡單)的解決方案是定期以批處理模式轉儲top的輸出並在之后解析它。

我猜,時間(1)程序可能會有所幫助。 它比輪詢頂部簡單得多。

手冊頁摘錄:

   Disregarding  the
   name  of  the  utility, GNU makes it output lots of useful information,
   not only about time used, but also on other resources like memory,  I/O
   and  IPC calls (where available).

您可以查看top命令。 這可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM