首页 > 解决方案 > 是 tcmalloc: large alloc Python 中的警告或错误

问题描述

我发现有时我得到了这个错误,但我看到 python 程序仍在运行(没有被终止),想知道这只是一个警告还是一个错误?我搜索了类似的讨论,但没有找到明确的答案。

tcmalloc: large alloc (bytes, result) = 1073750016 0x7f8a3fc00000 @ 0x55aefbc75b29 0x55aefbc74bbb 0x55aefc178c65 0x7f8bf019d86d 0x7f8bf019f908 0x7f8bf019cac8 0x 0x 0x 0x

标签: pythonmemorymemory-management

解决方案


根据https://www.novell.com/support/kb/doc.php?id=7012805

“这条消息本身并不是真正的错误,它更多地只是提供信息。

有一个环境变量 TCMALLOC_LARGE_ALLOC_REPORT_THRESHOLD,默认设置为 1073741824 字节。~1GB 因此,如果分配的内存为 == 或超过 1GB,则此消息将显示在 ndsd.log 中。

如果服务器中有大量内存,例如大于 8G - 32GB 和/或相当大的 eDirectory 数据库,您可能更容易看到此消息。您可以将阈值修改为大于您在 ndsd.log 中看到的典型分配。”

鉴于我不知道您正在使用的环境,我不确定这是否特别正确,我想说这个解释可以概括为正在运行的应用程序已分配 1GB 内存的警告。

更多信息: https ://github.com/gperftools/gperftools/issues/360

编辑:根据 OPS 评论,在分配 1gb 和 21gb 时似乎产生了相同的错误,因此可以安全地假设存在使用所有可用内存的编程错误,我会回去查看代码。


推荐阅读