我们如何计算在 Python 中实现的算法的不同数据大小的内存使用量



我有不同的数据集,大小不同,我想根据这些数据集计算在Python中实现的排序算法的内存使用情况。对于每种类型的排序算法,我想知道每个数据集的内存使用情况,以便我可以绘制一个图形。

我尝试使用 psutil.virtual_memory((,但它没有给出预期的结果。

我试图安装堆,但 anaconda 告诉我不存在这样的库。

我建议memory_profiler查看。一个探查器,可以逐行输出 Python 函数的内存消耗。它可以通过运行pip install -U memory_profiler来安装,使用起来似乎非常简单。只需在要监视的功能上添加一个@profile,然后运行python -m memory_profiler YourScript.py即可开始监视。memory_profiler还附带了一个自动绘图仪可执行文件 mprof。有关 mprof 的更多信息,请参见此处和此处。

您还可以使用以下方法将memory_profiler输出写入文件:

fp=open('memory_profiler.log','w+')
@profile(stream=fp)

通过在脚本本身中导入模块,可以避免一起调用-m memory_profilerfrom memory_profiler import profile

如果这不太符合要求,我建议您查看这个完整的帮助小博客。

最新更新