python - 为什么 guppy3 和 memory_profiler 差异如此之大?
问题描述
我已经使用 memory_profiler 和 guppy3 来分析我的 python 程序的内存使用情况,但得到了完全不同的结果。我的实验侧重于多处理,所以这里让我给你看一个简单的例子:
假设我们有一个列表:l = [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10), (2, 3), (4, 5), (6, 7), (8, 9)]
和一个函数:
def f(x):
time.sleep(1)
x1 = x + 1
if x1 > 5:
return x1
和另一个多处理功能:
def myfunc():
p = Pool(4)
a = [x for (x, y) in l]
p.map_async(f, a)
p.close()
p.join()
然而 guppy3 的结果显示如下:
创建对象后的内存使用量:0.3077840805053711 MB
memory_profiler 显示如下: mprof plot 整体
任何想法?对于分析 python 中的多处理内存使用情况,您有什么建议吗?
解决方案
推荐阅读
- android-studio - 卡在 Android drawable importer
- android - 当我刷新我的页面列表时,我在 PageAdapter 中的项目将在短时间内放错位置
- python - 我想知道如何使用 Bot framework SDK for python 设置自适应卡的主机配置
- oracle - Oracle 19c 和“没有为主机返回有效的 IP 地址”
- python - 如何自动化循环日期以便在当前日期后自动添加一个月?[Python-Django]
- php - 使用 eloquent laravel 获取连接表数据
- node.js - 如何在 ubuntu 上设置 webRTC 服务器
- laravel - 如何在 Laravel 6 中对 restAPI 执行具有许多参数的存储过程
- firebase - Flutter + Firebase Functions 和 Hosting 推荐的文件夹结构
- c - 为什么没有返回语句的非 void C 空函数应该复制结构?