这是之前一篇:不同大小的矩阵的内存占用和计算时间。本篇进一步详细完整地记录不同大小的矩阵的内存占用,矩阵维度从 1 到 40w 左右,内存占用从 8B 至 1TB 左右,方便有需要时快速查阅。
通过计算记录可以发现:
- 对于个人电脑,1w ~ 5w 维度的矩阵载入已经是上限,内存需求达到 1GB 或 10GB 数量级。
- 对于超算资源,10w ~50w 维度的矩阵载入已经是上限,内存需求达到 100GB 或 1TB 数量级。
测试 Python 代码为:
"""
This code is supported by the website: https://www.guanjihuan.com
The newest version of this code is on the web page: https://www.guanjihuan.com/archives/45873
"""
import numpy as np
import sys
n_array = np.concatenate((np.arange(1, 10, 1),
np.arange(10, 100, 10),
np.arange(100, 1000, 100),
np.arange(1000, 10000, 1000),
np.arange(10000, 100000, 10000),
np.arange(100000, 1000000, 100000)))
for n in n_array:
matrix = np.zeros((n, n)) # 双精度浮点数 float64 一个数据占用 8B
# matrix = np.zeros((n, n), dtype=complex) # 双精度复数 complex128 一个数据占用 16B
# matrix = np.zeros((n, n), dtype=np.float32) # 单精度浮点数 float32 一个数据占用 4B
# matrix = np.zeros((n, n), dtype=int) # 整数 int32 一个数据占用 4B
if n==1:
print(type(matrix[0, 0]), '\n')
size0 = matrix.nbytes # 矩阵数据内存占用
size = sys.getsizeof(matrix) # 矩阵总的内存占用
print(f'矩阵 N={n}')
if size<1024:
print(f'数据内存占用: {size0:.2f} B')
print(f'总的内存占用: {size:.2f} B')
elif 1024<=size<1024*1024:
print(f'数据内存占用: {size0/1024:.2f} KB')
print(f'总的内存占用: {size/1024:.2f} KB')
elif 1024*1024<=size<1024*1024*1024:
print(f'数据内存占用: {size0/(1024*1024):.2f} MB')
print(f'总的内存占用: {size/(1024*1024):.2f} MB')
elif 1024*1024*1024<=size<1024*1024*1024*1024:
print(f'数据内存占用: {size0/(1024*1024*1024):.2f} GB')
print(f'总的内存占用: {size/(1024*1024*1024):.2f} GB')
else:
print(f'数据内存占用: {size0/(1024*1024*1024*1024):.2f} TB')
print(f'总的内存占用: {size/(1024*1024*1024*1024):.2f} TB')
print()
运行结果:
<class 'numpy.float64'>
矩阵 N=1
数据内存占用: 8.00 B
总的内存占用: 136.00 B
矩阵 N=2
数据内存占用: 32.00 B
总的内存占用: 160.00 B
矩阵 N=3
数据内存占用: 72.00 B
总的内存占用: 200.00 B
矩阵 N=4
数据内存占用: 128.00 B
总的内存占用: 256.00 B
矩阵 N=5
数据内存占用: 200.00 B
总的内存占用: 328.00 B
矩阵 N=6
数据内存占用: 288.00 B
总的内存占用: 416.00 B
矩阵 N=7
数据内存占用: 392.00 B
总的内存占用: 520.00 B
矩阵 N=8
数据内存占用: 512.00 B
总的内存占用: 640.00 B
矩阵 N=9
数据内存占用: 648.00 B
总的内存占用: 776.00 B
矩阵 N=10
数据内存占用: 800.00 B
总的内存占用: 928.00 B
矩阵 N=20
数据内存占用: 3.12 KB
总的内存占用: 3.25 KB
矩阵 N=30
数据内存占用: 7.03 KB
总的内存占用: 7.16 KB
矩阵 N=40
数据内存占用: 12.50 KB
总的内存占用: 12.62 KB
矩阵 N=50
数据内存占用: 19.53 KB
总的内存占用: 19.66 KB
矩阵 N=60
数据内存占用: 28.12 KB
总的内存占用: 28.25 KB
矩阵 N=70
数据内存占用: 38.28 KB
总的内存占用: 38.41 KB
矩阵 N=80
数据内存占用: 50.00 KB
总的内存占用: 50.12 KB
矩阵 N=90
数据内存占用: 63.28 KB
总的内存占用: 63.41 KB
矩阵 N=100
数据内存占用: 78.12 KB
总的内存占用: 78.25 KB
矩阵 N=200
数据内存占用: 312.50 KB
总的内存占用: 312.62 KB
矩阵 N=300
数据内存占用: 703.12 KB
总的内存占用: 703.25 KB
矩阵 N=400
数据内存占用: 1.22 MB
总的内存占用: 1.22 MB
矩阵 N=500
数据内存占用: 1.91 MB
总的内存占用: 1.91 MB
矩阵 N=600
数据内存占用: 2.75 MB
总的内存占用: 2.75 MB
矩阵 N=700
数据内存占用: 3.74 MB
总的内存占用: 3.74 MB
矩阵 N=800
数据内存占用: 4.88 MB
总的内存占用: 4.88 MB
矩阵 N=900
数据内存占用: 6.18 MB
总的内存占用: 6.18 MB
矩阵 N=1000
数据内存占用: 7.63 MB
总的内存占用: 7.63 MB
矩阵 N=2000
数据内存占用: 30.52 MB
总的内存占用: 30.52 MB
矩阵 N=3000
数据内存占用: 68.66 MB
总的内存占用: 68.66 MB
矩阵 N=4000
数据内存占用: 122.07 MB
总的内存占用: 122.07 MB
矩阵 N=5000
数据内存占用: 190.73 MB
总的内存占用: 190.73 MB
矩阵 N=6000
数据内存占用: 274.66 MB
总的内存占用: 274.66 MB
矩阵 N=7000
数据内存占用: 373.84 MB
总的内存占用: 373.84 MB
矩阵 N=8000
数据内存占用: 488.28 MB
总的内存占用: 488.28 MB
矩阵 N=9000
数据内存占用: 617.98 MB
总的内存占用: 617.98 MB
矩阵 N=10000
数据内存占用: 762.94 MB
总的内存占用: 762.94 MB
矩阵 N=20000
数据内存占用: 2.98 GB
总的内存占用: 2.98 GB
矩阵 N=30000
数据内存占用: 6.71 GB
总的内存占用: 6.71 GB
矩阵 N=40000
数据内存占用: 11.92 GB
总的内存占用: 11.92 GB
矩阵 N=50000
数据内存占用: 18.63 GB
总的内存占用: 18.63 GB
矩阵 N=60000
数据内存占用: 26.82 GB
总的内存占用: 26.82 GB
矩阵 N=70000
数据内存占用: 36.51 GB
总的内存占用: 36.51 GB
矩阵 N=80000
数据内存占用: 47.68 GB
总的内存占用: 47.68 GB
矩阵 N=90000
数据内存占用: 60.35 GB
总的内存占用: 60.35 GB
矩阵 N=100000
数据内存占用: 74.51 GB
总的内存占用: 74.51 GB
矩阵 N=200000
数据内存占用: 298.02 GB
总的内存占用: 298.02 GB
矩阵 N=300000
数据内存占用: 670.55 GB
总的内存占用: 670.55 GB
矩阵 N=400000
数据内存占用: 1.16 TB
总的内存占用: 1.16 TB
<class 'numpy.complex128'>
矩阵 N=1
数据内存占用: 16.00 B
总的内存占用: 144.00 B
矩阵 N=2
数据内存占用: 64.00 B
总的内存占用: 192.00 B
矩阵 N=3
数据内存占用: 144.00 B
总的内存占用: 272.00 B
矩阵 N=4
数据内存占用: 256.00 B
总的内存占用: 384.00 B
矩阵 N=5
数据内存占用: 400.00 B
总的内存占用: 528.00 B
矩阵 N=6
数据内存占用: 576.00 B
总的内存占用: 704.00 B
矩阵 N=7
数据内存占用: 784.00 B
总的内存占用: 912.00 B
矩阵 N=8
数据内存占用: 1.00 KB
总的内存占用: 1.12 KB
矩阵 N=9
数据内存占用: 1.27 KB
总的内存占用: 1.39 KB
矩阵 N=10
数据内存占用: 1.56 KB
总的内存占用: 1.69 KB
矩阵 N=20
数据内存占用: 6.25 KB
总的内存占用: 6.38 KB
矩阵 N=30
数据内存占用: 14.06 KB
总的内存占用: 14.19 KB
矩阵 N=40
数据内存占用: 25.00 KB
总的内存占用: 25.12 KB
矩阵 N=50
数据内存占用: 39.06 KB
总的内存占用: 39.19 KB
矩阵 N=60
数据内存占用: 56.25 KB
总的内存占用: 56.38 KB
矩阵 N=70
数据内存占用: 76.56 KB
总的内存占用: 76.69 KB
矩阵 N=80
数据内存占用: 100.00 KB
总的内存占用: 100.12 KB
矩阵 N=90
数据内存占用: 126.56 KB
总的内存占用: 126.69 KB
矩阵 N=100
数据内存占用: 156.25 KB
总的内存占用: 156.38 KB
矩阵 N=200
数据内存占用: 625.00 KB
总的内存占用: 625.12 KB
矩阵 N=300
数据内存占用: 1.37 MB
总的内存占用: 1.37 MB
矩阵 N=400
数据内存占用: 2.44 MB
总的内存占用: 2.44 MB
矩阵 N=500
数据内存占用: 3.81 MB
总的内存占用: 3.81 MB
矩阵 N=600
数据内存占用: 5.49 MB
总的内存占用: 5.49 MB
矩阵 N=700
数据内存占用: 7.48 MB
总的内存占用: 7.48 MB
矩阵 N=800
数据内存占用: 9.77 MB
总的内存占用: 9.77 MB
矩阵 N=900
数据内存占用: 12.36 MB
总的内存占用: 12.36 MB
矩阵 N=1000
数据内存占用: 15.26 MB
总的内存占用: 15.26 MB
矩阵 N=2000
数据内存占用: 61.04 MB
总的内存占用: 61.04 MB
矩阵 N=3000
数据内存占用: 137.33 MB
总的内存占用: 137.33 MB
矩阵 N=4000
数据内存占用: 244.14 MB
总的内存占用: 244.14 MB
矩阵 N=5000
数据内存占用: 381.47 MB
总的内存占用: 381.47 MB
矩阵 N=6000
数据内存占用: 549.32 MB
总的内存占用: 549.32 MB
矩阵 N=7000
数据内存占用: 747.68 MB
总的内存占用: 747.68 MB
矩阵 N=8000
数据内存占用: 976.56 MB
总的内存占用: 976.56 MB
矩阵 N=9000
数据内存占用: 1.21 GB
总的内存占用: 1.21 GB
矩阵 N=10000
数据内存占用: 1.49 GB
总的内存占用: 1.49 GB
矩阵 N=20000
数据内存占用: 5.96 GB
总的内存占用: 5.96 GB
矩阵 N=30000
数据内存占用: 13.41 GB
总的内存占用: 13.41 GB
矩阵 N=40000
数据内存占用: 23.84 GB
总的内存占用: 23.84 GB
矩阵 N=50000
数据内存占用: 37.25 GB
总的内存占用: 37.25 GB
矩阵 N=60000
数据内存占用: 53.64 GB
总的内存占用: 53.64 GB
矩阵 N=70000
数据内存占用: 73.02 GB
总的内存占用: 73.02 GB
矩阵 N=80000
数据内存占用: 95.37 GB
总的内存占用: 95.37 GB
矩阵 N=90000
数据内存占用: 120.70 GB
总的内存占用: 120.70 GB
矩阵 N=100000
数据内存占用: 149.01 GB
总的内存占用: 149.01 GB
矩阵 N=200000
数据内存占用: 596.05 GB
总的内存占用: 596.05 GB
矩阵 N=300000
数据内存占用: 1.31 TB
总的内存占用: 1.31 TB
<class 'numpy.float32'>
或 <class 'numpy.int32'>
矩阵 N=1
数据内存占用: 4.00 B
总的内存占用: 132.00 B
矩阵 N=2
数据内存占用: 16.00 B
总的内存占用: 144.00 B
矩阵 N=3
数据内存占用: 36.00 B
总的内存占用: 164.00 B
矩阵 N=4
数据内存占用: 64.00 B
总的内存占用: 192.00 B
矩阵 N=5
数据内存占用: 100.00 B
总的内存占用: 228.00 B
矩阵 N=6
数据内存占用: 144.00 B
总的内存占用: 272.00 B
矩阵 N=7
数据内存占用: 196.00 B
总的内存占用: 324.00 B
矩阵 N=8
数据内存占用: 256.00 B
总的内存占用: 384.00 B
矩阵 N=9
数据内存占用: 324.00 B
总的内存占用: 452.00 B
矩阵 N=10
数据内存占用: 400.00 B
总的内存占用: 528.00 B
矩阵 N=20
数据内存占用: 1.56 KB
总的内存占用: 1.69 KB
矩阵 N=30
数据内存占用: 3.52 KB
总的内存占用: 3.64 KB
矩阵 N=40
数据内存占用: 6.25 KB
总的内存占用: 6.38 KB
矩阵 N=50
数据内存占用: 9.77 KB
总的内存占用: 9.89 KB
矩阵 N=60
数据内存占用: 14.06 KB
总的内存占用: 14.19 KB
矩阵 N=70
数据内存占用: 19.14 KB
总的内存占用: 19.27 KB
矩阵 N=80
数据内存占用: 25.00 KB
总的内存占用: 25.12 KB
矩阵 N=90
数据内存占用: 31.64 KB
总的内存占用: 31.77 KB
矩阵 N=100
数据内存占用: 39.06 KB
总的内存占用: 39.19 KB
矩阵 N=200
数据内存占用: 156.25 KB
总的内存占用: 156.38 KB
矩阵 N=300
数据内存占用: 351.56 KB
总的内存占用: 351.69 KB
矩阵 N=400
数据内存占用: 625.00 KB
总的内存占用: 625.12 KB
矩阵 N=500
数据内存占用: 976.56 KB
总的内存占用: 976.69 KB
矩阵 N=600
数据内存占用: 1.37 MB
总的内存占用: 1.37 MB
矩阵 N=700
数据内存占用: 1.87 MB
总的内存占用: 1.87 MB
矩阵 N=800
数据内存占用: 2.44 MB
总的内存占用: 2.44 MB
矩阵 N=900
数据内存占用: 3.09 MB
总的内存占用: 3.09 MB
矩阵 N=1000
数据内存占用: 3.81 MB
总的内存占用: 3.81 MB
矩阵 N=2000
数据内存占用: 15.26 MB
总的内存占用: 15.26 MB
矩阵 N=3000
数据内存占用: 34.33 MB
总的内存占用: 34.33 MB
矩阵 N=4000
数据内存占用: 61.04 MB
总的内存占用: 61.04 MB
矩阵 N=5000
数据内存占用: 95.37 MB
总的内存占用: 95.37 MB
矩阵 N=6000
数据内存占用: 137.33 MB
总的内存占用: 137.33 MB
矩阵 N=7000
数据内存占用: 186.92 MB
总的内存占用: 186.92 MB
矩阵 N=8000
数据内存占用: 244.14 MB
总的内存占用: 244.14 MB
矩阵 N=9000
数据内存占用: 308.99 MB
总的内存占用: 308.99 MB
矩阵 N=10000
数据内存占用: 381.47 MB
总的内存占用: 381.47 MB
矩阵 N=20000
数据内存占用: 1.49 GB
总的内存占用: 1.49 GB
矩阵 N=30000
数据内存占用: 3.35 GB
总的内存占用: 3.35 GB
矩阵 N=40000
数据内存占用: 5.96 GB
总的内存占用: 5.96 GB
矩阵 N=50000
数据内存占用: 9.31 GB
总的内存占用: 9.31 GB
矩阵 N=60000
数据内存占用: 13.41 GB
总的内存占用: 13.41 GB
矩阵 N=70000
数据内存占用: 18.25 GB
总的内存占用: 18.25 GB
矩阵 N=80000
数据内存占用: 23.84 GB
总的内存占用: 23.84 GB
矩阵 N=90000
数据内存占用: 30.17 GB
总的内存占用: 30.17 GB
矩阵 N=100000
数据内存占用: 37.25 GB
总的内存占用: 37.25 GB
矩阵 N=200000
数据内存占用: 149.01 GB
总的内存占用: 149.01 GB
矩阵 N=300000
数据内存占用: 335.28 GB
总的内存占用: 335.28 GB
矩阵 N=400000
数据内存占用: 596.05 GB
总的内存占用: 596.05 GB
矩阵 N=500000
数据内存占用: 931.32 GB
总的内存占用: 931.32 GB
矩阵 N=600000
数据内存占用: 1.31 TB
总的内存占用: 1.31 TB
【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com】