我需要一个可以回收不再需要的元素的字典对象。目标是通过删除一段时间内没有人访问过的对象,使字典不会变得太大。
我认为计时器可以完成这项工作。我会给每个键一个计时器,当计时器完成时,删除密钥,除非已经访问了密钥,在这种情况下我会重置计时器。但我担心数以千计的计时器会降低性能。
或者,我可以偶尔检查循环中的键时间。循环类似于:
myDict #the dict contains the objects
timestampDict #dict save the objects' last accessed time stamp
deleteKeys = []
currentTime = time.time()
for key in myDict.keys():
if (currentTime-timestampDict[key])>1200: #20 minutes not be accessed
deleteKeys.append(key)
for key in deleteKeys:
del myDict[key]
del timestampDict[key]
无论如何我可以知道哪个对象的时间已经过了20分钟而没有遍历dict?我想知道Python的库中是否已经有一个实现,或者如何以低成本实现它。