linux - linux下如何获取进程的总内存使用量和执行时间?

标签 linux unix memory process

我正在制作在线评委,我需要这些信息来进行排名和排行榜。有人能帮我解决这个问题吗?

最佳答案

基本实现很简单,但是在线评委更关心的是安全性,其次是资源衡量。

一步一步的朴素方式可以写成:

  1. 以特权用户身份运行进程
  2. 安装所有信号处理程序
  3. 将输入文件流复制到标准输入
  4. 创建子进程
  5. 在子进程中设置资源限制值
  6. 在子进程中切换到非特权用户
  7. 执行要在子进程中运行的程序
  8. 在父进程中,检查使用WIFSIGNALED和WTERMSIG等发送的信号并确定子进程的状态。

以下书籍将帮助您学习有关信号和资源限制的这些概念:

Advanced Programming in the UNIX(R) Environment (Addison-Wesley Professional Computing Series)

关于linux - linux下如何获取进程的总内存使用量和执行时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37144731/

相关文章:

linux - undefined symbol 引用/..libdl.so.2 : error adding symbols: DSO missing from command line

bash - UNIX 导出命令

unix - 如果找到差异则失败(c-shell)

linux - 如何在不删除压缩版本的情况下删除 UNIX 中的解压缩文件?

objective-c - Objc 内存崩溃与 autorelase

java - 将对象的 ArrayList 拆分为大小相等的 block ,例如在 Java 中为 1 MB

c - C union 中的变量对齐方式在所有系统上都相同吗?

linux - 如何找到一个系统产生的最大线程数?

LInux vi编辑器,如何替换特殊字符?

linux - 在多个脚本的变量赋值中附加新路径