【问题标题】:Cross-platform resource usage on subprocess.Popensubprocess.Popen 上的跨平台资源使用
【发布时间】:2014-03-28 14:04:40
【问题描述】:

首先,如果在抱歉重复之前有人问过这个问题,但我无法在任何地方找到我的问题的答案。

所以,我对 Python 还是很陌生,我目前正在开发一个 Web 应用程序的包装器。 这个包装器使用 Popen 启动一个子进程,然后将有关该子进程的信息发送到 Web 应用程序。到目前为止一切都很好。

现在我唯一的问题是; 是否可以获取子进程的资源使用情况(RAM 和 CPU)?
如果是这样,我将如何去做?跨平台的东西会很棒,但 Windows、Mac 和 Linux 的不同方法也可以。

如果无法通过子进程获取。我将如何从另一个进程中获取资源使用情况?

任何帮助将不胜感激!
感谢您的宝贵时间!

【问题讨论】:

    标签: python subprocess cpu popen ram


    【解决方案1】:

    psutil 提供了一个跨平台的解决方案来获取子进程的资源使用例如:

    import random
    import psutil # $ pip install psutil
    
    p = psutil.Process(random.choice(psutil.pids()))
    print(p.name())
    print(p.cpu_times())
    print(p.memory_info())
    

    要获取现有subprocess.Popen 实例的信息,只需将popen_instance.pid 传递给psutil.Process。您也可以直接使用psutil.Popen 创建子进程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 2013-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多