Bug report
Bug description:
importrandomimporttimefromthreadingimportLock, ThreadimportpsutilclassCache:
def__init__(self, cap):
self.m= {}
self.mu=Lock()
self.cap=capdefget(self, key):
withself.mu:
try:
v=self.m[key]
exceptKeyError:
return0, Falsereturnv, Truedefset(self, key, value):
withself.mu:
self.m[key] =valueiflen(self.m) >self.cap:
self.m.popitem()
defset_key(cache):
c=0whileTrue:
key=random.randint(0, 1000000000)
cache.set(key, key)
c+=1ifc==100000:
c=0print(".", end="", flush=True)
defrun():
cache=Cache(500000)
for_inrange(4):
thread=Thread(target=set_key, args=[cache])
thread.start()
process=psutil.Process()
whileTrue:
time.sleep(10)
withcache.mu:
print(f"rss: {process.memory_info().rss}, dict len: {len(cache.m)}")
if__name__=="__main__":
run()Platform: macOS-14.6.1-x86_64-i386-64bit-Mach-O
Python 3.13.3t
uv run --python 3.13.3t mem.py............................................................rss: 384696320, dict len: 500000.......................................................rss: 636743680, dict len: 500000.......................................................rss: 888782848, dict len: 500000.........................................................rss: 1140793344, dict len: 500000......................................................rss: 1392799744, dict len: 500000
Python 3.13.3
uv run --python 3.13.3 mem.py....................................................................................................rss: 159633408, dict len: 500000...............................................................................................................rss: 159813632, dict len: 500000.........................................................................................................rss: 159981568, dict len: 500000...........................................................................................................rss: 160149504, dict len: 500000......................................................................................................rss: 160301056, dict len: 500000
CPython versions tested on:
3.13
Operating systems tested on:
macOS
Linked PRs
Bug report
Bug description:
Platform: macOS-14.6.1-x86_64-i386-64bit-Mach-O
Python 3.13.3t
Python 3.13.3
CPython versions tested on:
3.13
Operating systems tested on:
macOS
Linked PRs