我在 python 中将一个大数据集加载到内存中,如下所示:
data = dict(np.load(open('/path/to/data', 'rb')))
free
和top
(以及 also htop
)都表明大量内存正在被使用:
$ free -h total used free shared buff/cache available Mem: 62G 42G 354M 41M 20G 20G Swap: 63G 447M 63G
$ top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 6830 gmr 20 0 42.265g 0.041t 7296 S 0.0 66.1 34:52.22 ipython
但csysdig
显示内存使用量少得多:
$ sudo csysdig PID CPU USER TH VIRT RES FILE NET Command 6830 0.00 gmr 13 2G 2G 0 0.00 /usr/bin/python /usr/bin/ipython
造成这种差异的原因是什么?