Closed zombie110year closed 1 year ago
在使用 nonebot-plugin-memes 的时候发现内存膨胀比较快,经排查发现是表情“飞机杯”导致的,调用一次将增加32MB的内存占用。 用 memray attach 发现是在生成飞机杯表情时有个 numpy 乘法留下了 32MB 内存没释放。
因为我白天只能用手机 termux 看看服务器上的日志,没办法详细分析。晚上有空再研究一下这个问题。如果作者你有时间的话可以帮我解决一下吗(笑
下面这个是 memray 在调用两次飞机杯表情包时抓取到的记录,但是因为服务器上是以 attach 模式抓取的,没有更详细的调用栈。
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┓ ┃ Location ┃ Total Memory ┃ Total Memory % ┃ <Own Memory> ┃ Own Memory % ┃ Allocation Count ┃ ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━┩ │ __mul__ at /root/qqbot/heimiao/__pypackages__/3.10/lib/numpy/matrixlib/defmatrix.py │ 32.000MB │ 49.38% │ 32.000MB │ 49.38% │ 2 │ │ convert at /root/qqbot/heimiao/__pypackages__/3.10/lib/PIL/Image.py │ 3.371KB │ 0.01% │ 3.371KB │ 0.01% │ 2 │ └─────────────────────────────────────────────────────────────────────────────────────────────────────┴─────────────────────┴────────────────────┴────────────────────┴────────────────────┴────────────────────┘
看起来是 PIL 的问题,加载字体后不会释放,是正常行为,此issue关闭。
在使用 nonebot-plugin-memes 的时候发现内存膨胀比较快,经排查发现是表情“飞机杯”导致的,调用一次将增加32MB的内存占用。 用 memray attach 发现是在生成飞机杯表情时有个 numpy 乘法留下了 32MB 内存没释放。
因为我白天只能用手机 termux 看看服务器上的日志,没办法详细分析。晚上有空再研究一下这个问题。如果作者你有时间的话可以帮我解决一下吗(笑
下面这个是 memray 在调用两次飞机杯表情包时抓取到的记录,但是因为服务器上是以 attach 模式抓取的,没有更详细的调用栈。