背景
我的小型Python脚本使用一个库处理一些相对较大的数据。这个任务的标准算法是动态规划算法,因此推测该库“在幕后”分配了一个大数组来跟踪DP的部分结果。当我尝试提供相当大的输入时,它立即报告一个MemoryError
。
最好不要深入挖掘库的底层,我想弄清楚是否值得在具有更多内存的不同机器上尝试此算法,或者尝试在输入大小上稍微减少一些,或者如果我正在尝试使用的数据大小已经无望了。
问题
当我的Python代码抛出MemoryError
时,是否有一种“自上而下”的方式可以调查我的代码尝试分配的内存大小,从而导致错误,例如通过检查错误对象?
psutil.virtual_memory()
来获取你所需要的内存使用数据。话虽如此,根据你的问题,我不知道有没有一种方法可以从错误本身获取这些信息。 - benvcpsutil
的事实转化为答案,我会很高兴接受并授予奖励。 - Mees de Vries