【问题标题】:is tcmalloc: large alloc a warning or error in Python是 tcmalloc: large alloc Python 中的警告或错误
【发布时间】:2019-02-20 10:13:44
【问题描述】:

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

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

【问题讨论】:

    标签: python memory memory-management


    【解决方案1】:

    根据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

    【讨论】:

    • 谢谢麦迪逊,它会导致程序终止吗?
    • 不是警告没有,但很明显如果你的内存用完了。
    • 感谢麦迪逊的解释,如果发生这样的警告,是否意味着我的程序中有问题——例如分配太多内存?或者如果我真的需要分配这么大的内存空间也可以。
    • 如果它是一个内存密集型应用程序就很好,如果它没有崩溃我假设你没有用完所以不用担心。
    • 感谢麦迪逊,将您的回复标记为答案。当 SO 允许我时,将在 8 小时内授予赏金。 :)
    【解决方案2】:

    内存不足,见下图。 当内存不足时,我会收到此消息。

    您收到此消息是因为它耗尽了您的所有内存。

    【讨论】:

      猜你喜欢
      • 2012-02-23
      • 2019-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      • 1970-01-01
      • 2011-02-01
      • 2020-02-15
      相关资源
      最近更新 更多