gpt4 book ai didi

Python 相当于 PHP 的 memory_get_usage()?

转载 作者:IT老高 更新时间:2023-10-28 22:24:11 25 4
gpt4 key购买 nike

我已经 found the following question ,但我想知道是否有一种更快更脏的方法来估计python解释器当前为我的脚本使用了多少内存,而不依赖于外部库。

我来自 PHP,曾经使用 memory_get_usage()memory_get_peak_usage()为此做了很多,我希望能找到一个等价物。

最佳答案

使用 /proc/self/status 的 Linux 和其他系统的简单解决方案是以下代码,我在我的项目中使用:

def memory_usage():
"""Memory usage of the current process in kilobytes."""
status = None
result = {'peak': 0, 'rss': 0}
try:
# This will only work on systems with a /proc file system
# (like Linux).
status = open('/proc/self/status')
for line in status:
parts = line.split()
key = parts[0][2:-1].lower()
if key in result:
result[key] = int(parts[1])
finally:
if status is not None:
status.close()
return result

它返回当前和峰值驻留内存大小(这可能是人们谈论应用程序正在使用多少 RAM 时的意思)。很容易扩展它以从 /proc/self/status 文件中获取其他信息。

出于好奇:cat/proc/self/status 的完整输出如下所示:

% cat /proc/self/status
Name: cat
State: R (running)
Tgid: 4145
Pid: 4145
PPid: 4103
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
FDSize: 32
Groups: 20 24 25 29 40 44 46 100 1000
VmPeak: 3580 kB
VmSize: 3580 kB
VmLck: 0 kB
VmHWM: 472 kB
VmRSS: 472 kB
VmData: 160 kB
VmStk: 84 kB
VmExe: 44 kB
VmLib: 1496 kB
VmPTE: 16 kB
Threads: 1
SigQ: 0/16382
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 0000000000000000
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: 03
Cpus_allowed_list: 0-1
Mems_allowed: 1
Mems_allowed_list: 0
voluntary_ctxt_switches: 0
nonvoluntary_ctxt_switches: 0

关于Python 相当于 PHP 的 memory_get_usage()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/897941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com