我正在调试Django应用程序中的内存泄漏,并且可能对django_cachepurge感到好奇:

from threading import currentThread

_urls_to_purge = {}

def add_purge_url(url):
    # ....

    _urls_to_purge.setdefault(currentThread(), set()).add(url)

这样的构造是否容易发生内存泄漏?
我怀疑是这样,除非我对这里的Python魔术不熟悉。
没有可以清除dict的位置。

最佳答案

我不知道currentThread返回什么,但是您可以使用内置的idhash函数来获取安全值。

如果查询不够,例如因为您要遍历容器,所以有weakref.WeakKeyDictionary

关于python - 在Python中,以currentThread()为键的字典会导致内存泄漏吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7902739/

10-10 04:52