我想知道我的Python应用程序的内存使用情况,并且特别想知道哪些代码块/部分或对象占用了大部分内存.Google搜索显示商业广告是Python Memory Validator(仅限Windows).
我没有尝试任何人,所以我想知道哪一个是最好的考虑:
提供大部分细节.
我必须对代码进行最少或不做任何更改.
在Python中获取当前系统状态(当前CPU,RAM,可用磁盘空间等)的首选方法是什么?*nix和Windows平台的奖励积分.
似乎有一些可能的方法从我的搜索中提取:
使用像PSI这样的库(目前似乎没有积极开发并且在多个平台上不受支持)或像pystatgrab这样的东西(自2007年以来再没有活动似乎也不支持Windows).
使用特定于平台的代码,例如os.popen("ps")在*nix系统中使用或类似代码,以及MEMORYSTATUS在Windows平台上使用ctypes.windll.kernel32(参见ActiveState上的此配方).可以将Python类与所有这些代码片段放在一起.
并不是说这些方法很糟糕,但是已经有一个支持良好的多平台方式来做同样的事情了吗?
有没有办法让Python程序确定它当前使用了多少内存?我已经看过有关单个对象的内存使用情况的讨论,但我需要的是进程的总内存使用量,以便我可以确定何时需要开始丢弃缓存数据.