科学计算, 生活

不同大小的矩阵的内存占用(8B至1TB完整版 )

这是之前一篇:不同大小的矩阵的内存占用和计算时间。本篇进一步详细完整地记录不同大小的矩阵的内存占用,矩阵维度从 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 
18 次浏览

【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code