2
我发现,当我使用Python的concurrent.futures.ThreadPoolExecutor
vms内存使用(由psutil报告)显着增加。为什么concurrent.futures增加虚拟内存?
In [1]: import psutil
In [2]: psutil.Process().memory_info().vms/1e6
Out[2]: 360.636416
In [3]: from concurrent.futures import ThreadPoolExecutor
In [4]: e = ThreadPoolExecutor(20)
In [5]: psutil.Process().memory_info().vms/1e6
Out[5]: 363.15136
In [6]: futures = e.map(lambda x: x + 1, range(100))
In [7]: psutil.Process().memory_info().vms/1e6
Out[7]: 1873.580032
In [8]: e.shutdown()
In [9]: psutil.Process().memory_info().vms/1e6
Out[9]: 1722.51136
这似乎与线程数有些成正比。
请注意,其他内存属性(如rss)会返回更适度的值 – MRocklin