python3.5 silinen nesnenin değil tamamen ücretsiz hafıza Bunun nedeni pitonun içten Ancak, onları yeniden kullanmak istemiyorum, amacını yeniden kullanmak için memroy havuzunun çeşit muhafaza edebilir yapar görünüyor ve onları serbest istiyorum Linux üzerinde çalışan diğer programlar için bellek kullanılabilir hale getirmek.Python silinen nesnenin hafızası nasıl boşaltılır?
>>> psutil.Process().memory_info().rss/2**20
11.47265625
>>> d = {x:x for x in range(10**7)}
>>> psutil.Process().memory_info().rss/2**20
897.1796875
>>> del d
>>> gc.collect()
0
>>> psutil.Process().memory_info().rss/2**20
15.5859375
Bu sadece bir oyuncak örneği, asıl sorun unfreeable bellek 20GB alarak çalışan bir sunucuda olduğunu. Burada
başka örnektir: toplanma yerine hemen silinir çöp kullanabildiği bir nesneyi silmeden sonra>>> psutil.Process().memory_info().rss/2**20
28.1796875
>>> wd1 = {x:{i:i for i in d} for x in k}
>>> psutil.Process().memory_info().rss/2**20
682.78125
>>> del wd1
>>> psutil.Process().memory_info().rss/2**20
186.21484375
Python'da (veya otomatik veya yarı otomatik bellek yönetimi ile başka herhangi bir modern dilde) bellek yönetimi üzerinde hiçbir denetiminiz yoktur. – Daniel
Python'u bir sunucu programında kullanmamız gerektiğinde, python3.5'in kaynak kodunun sunucularda kullanılabilir hale getirilmesi için nasıl değiştirileceğine dair gerçekten bir sorun mu var? –
Sadece bir düşünce, ama büyük iş parçaları yapmak için alt işlem veya çok işlemcili modülleri kullanma hakkında ne? Bir Linux süreci sona erdiğinde, tüm anılarınızı geri almaz mıydınız? * python3.5'in kaynağını nasıl değiştirebilirim ... * en azından benim için bir başlatıcı gibi görünüyor. –