m0_53782829 2023-04-09 02:45 采纳率: 50%
浏览 40
已结题

检测内存占用情况代码路径报错

在python3.6的pycharm中,在一段检测进程占用内存情况的代码中,由于是开源代码,它指定的路径是Linux系统里的'/proc/{}/status'
而我没有这样的路径,我应该怎么修改
报错如图

D:\Anaconda\anaconda3\envs\pytorch\python.exe D:\GNN_test1\GNN-GCP-master\GNN-GCP-master\neurosat\neurosat_train.py 
Traceback (most recent call last):
  File "D:\GNN_test1\GNN-GCP-master\GNN-GCP-master\neurosat\neurosat_train.py", line 29, in <module>
    print( "{timestamp}\t{memory}\tBuilding model ...".format( timestamp = timestamp(), memory = memory_usage() ) )
  File "D:\GNN_test1\GNN-GCP-master\GNN-GCP-master\neurosat\util.py", line 11, in memory_usage
    s = next( line for line in open( '/proc/{}/status'.format( pid ) ).read().splitlines() if line.startswith( 'VmSize' ) ).split()
FileNotFoundError: [Errno 2] No such file or directory: '/proc/11612/status'

Process finished with exit code 1

代码片段是这样

def memory_usage():
  pid=os.getpid()
  s = next( line for line in open( '/proc/{}/status'.format( pid ) ).read().splitlines() if line.startswith( 'VmSize' ) ).split()
  return "{} {}".format( s[-2], s[-1] )
#end memory_usage

我大概了解是路径 '/proc/{}/status'有问题,但是不知道应该怎么修改,希望得到解决方法

  • 写回答

5条回答 默认 最新

  • 极客智能体-在线 2023-04-10 04:01
    关注

    以下答案由GPT-3.5大模型与博主波罗歌共同编写:
    '/proc/{}/status'是Linux系统的路径,如果你在Windows系统中使用该路径,会因为找不到目录而出现FileNotFoundError。因此,如果你想在Windows系统中运行该代码,你需要使用其他的方法来获取进程的内存使用情况。

    在Windows系统中,你可以使用psutil库来获取进程的内存使用情况。具体代码如下:

    首先,你需要安装psutil库,使用命令pip install psutil即可安装。

    然后你需要导入psutil库,并修改memory_usage()函数如下:

    import psutil
    import os
    
    def memory_usage():
        pid = os.getpid()
        process = psutil.Process(pid)
        mem_info = process.memory_info()
        return "{} {}".format(mem_info.rss, mem_info.vms)
    

    这个函数会返回'rss'和'vms',这两个值分别表示进程的实际内存和虚拟内存的使用情况。你可以根据自己的需要选择其中一个值。

    修改后的完整代码如下:

    import os
    import psutil
    
    def memory_usage():
        pid = os.getpid()
        process = psutil.Process(pid)
        mem_info = process.memory_info()
        return "{} {}".format(mem_info.rss, mem_info.vms)
    
    if __name__=="__main__":
        print(memory_usage())
    

    这样就可以在Windows系统中获取进程的内存使用情况了。
    如果我的回答解决了您的问题,请采纳!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 4月17日
  • 已采纳回答 4月10日
  • 创建了问题 4月9日

悬赏问题

  • ¥15 vscode开发micropython,import模块出现异常
  • ¥20 Excel数据自动录入表单并提交
  • ¥30 silcavo仿真,30分钟,只需要代码
  • ¥15 FastReport 怎么实现打印后马上关闭打印预览窗口
  • ¥15 利用3支股票数据估计其均值和方差的95%置信区间。
  • ¥15 微信小程序运行一项功能时,弹出未知错误弹框,检查代码没有问题
  • ¥15 ATAC测序生成self-pseudo replicates之前是否要进行去线粒体reads
  • ¥15 python模糊字匹配函数问题
  • ¥20 谁刷目标页面的uv记录器上数据,数据只记录跳转的数值
  • ¥30 数据库软件的安装方法
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部