我想知道我的Python应用程序的内存使用情况,并且特别想知道哪些代码块/部分或对象占用了大部分内存.Google搜索显示商业广告是Python Memory Validator(仅限Windows).
我没有尝试任何人,所以我想知道哪一个是最好的考虑:
提供大部分细节.
我必须对代码进行最少或不做任何更改.
我有一个非常大的csv文件,我在熊猫中打开如下....
import pandas
df = pandas.read_csv('large_txt_file.txt')
Run Code Online (Sandbox Code Playgroud)
一旦我这样做,我的内存使用量增加2GB,这是预期的,因为该文件包含数百万行.当我需要释放这个内存时,我的问题出现了.我跑了....
del df
Run Code Online (Sandbox Code Playgroud)
但是,我的内存使用率没有下降.这是释放熊猫数据帧所使用的内存的错误方法吗?如果是,那么正确的方法是什么?
我有许多数据帧作为预处理的一部分创建.由于我有6GB内存限制,我想从RAM中删除所有不必要的数据帧,以避免在scikit-learn中运行GRIDSEARCHCV时内存不足.
1)是否只有列出的功能,当前加载到内存中的所有数据帧?
我尝试了dir()但它提供了许多除dataframe之外的其他对象.
2)我创建了一个要删除的数据帧列表
del_df=[Gender_dummies,
capsule_trans,
col,
concat_df_list,
coup_CAPSULE_dummies]
Run Code Online (Sandbox Code Playgroud)
跑了
for i in del_df:
del (i)
Run Code Online (Sandbox Code Playgroud)
但它没有删除数据帧.但是,像下面一样删除数据帧是从内存中删除数据帧.
del Gender_dummies
del col
Run Code Online (Sandbox Code Playgroud)