2024-09-27 19:29:13 发布
网友
我正在编写一个python脚本,我想知道在执行某些命令之后python进程的RAM增加了多少。就这样
Memory1 = .... byte #Some instructions ... Memory2 = .... byte
我可以在我的代码中加入什么命令?在
除了通过外部系统调用来获取有关当前进程内存使用情况的信息(例如,在Linux中直接读取当前进程的/proc/meminfo)之外,没有任何内置的方法可以做到这一点。在
/proc/meminfo
如果您对标准库中只返回使用的峰值resident memory的Unix解决方案感到满意,那么您正在寻找^{}。在
This function returns an object that describes the resources consumed by either the current process or its children...
>>> resource.getrusage(resource.RUSAGE_SELF) resource.struct_rusage(ru_utime=0.058433, ru_stime=0.021911999999999997, ru_maxrss=7600, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=2445, ru_majflt=1, ru_nswap=0, ru_inblock=256, ru_oublock=0, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=148, ru_nivcsw=176)
这将不能告诉您在调用之间分配了多少内存,但是跟踪应用程序生命周期中使用的峰值内存的增长情况可能很有用。在
一些用C编写的Python探查器已经开发出来,可以直接与CPython接口,CPython能够检索有关所用总内存的信息。一个例子是Heapy,它还具有图形绘制功能。在
如果只想跟踪添加到堆栈中的新对象所消耗的内存,则始终可以在每个新对象上使用sys.getsizeof()来获得分配的总空间。在
sys.getsizeof()
除了通过外部系统调用来获取有关当前进程内存使用情况的信息(例如,在Linux中直接读取当前进程的
/proc/meminfo
)之外,没有任何内置的方法可以做到这一点。在如果您对标准库中只返回使用的峰值resident memory的Unix解决方案感到满意,那么您正在寻找^{} 。在
这将不能告诉您在调用之间分配了多少内存,但是跟踪应用程序生命周期中使用的峰值内存的增长情况可能很有用。在
一些用C编写的Python探查器已经开发出来,可以直接与CPython接口,CPython能够检索有关所用总内存的信息。一个例子是Heapy,它还具有图形绘制功能。在
如果只想跟踪添加到堆栈中的新对象所消耗的内存,则始终可以在每个新对象上使用
sys.getsizeof()
来获得分配的总空间。在相关问题 更多 >
编程相关推荐