深入浅出:Python内存管理机制

深入浅出:Python内存管理机制

文章目录

一、什么是内存?

1.1、简介 —— 随机存取存储器(Random Access Memory,RAM)

1.2、内存容量

1.3、查看电脑内存

1.4、监控电脑内存

1.5、文件属性:大小 + 占用空间

二、(RAM)内存是CPU的主内存,(VRAM)显存是GPU的专用内存

2.1、内存(RAM) + 显存(VRAM)

2.2、中央处理器(CPU) + 图形处理器(GPU)

2.3、GPU内存 = GPU专用内存(显存) + GPU共享内存

2.4、数据类型 + 内存范围

(1)数据的存储单元(从小到大):Byte + bit + KB + MB + GB + TB + PB + EB + ZB + YB

(2)数据类型(每个字符的字节数 + 数据范围 + 内存范围)

(3)NumPy 与 PyTorch 数据类型对比表(如:numpy不支持float16)

(4)打印不同数据类型的 dtype 属性

三、【主机 = 内存 + CPU】 —— 【设备 = 显存 + GPU】

3.1、高效的 CUDA 程序,往往需要最大限度地减少 CPU 和 GPU 之间的通信开销

3.2、CUDA:线程 + 块 + 网格

四、Python内存管理

4.1、python是如何分配内存的?

4.2、python采用自动内存管理机制

4.3、自动内存管理机制:缺点

4.4、自动内存管理机制:优化方法

(1)sys.getrefcount():查看对象的引用计数

(2)gc.set_threshold():设置垃圾回收的第 i 代阈值(内存池)

五、项目实战

5.1、CPU内存

(1)计算图像内存(三种方式)

(2)获取CPU内存(总内存 + 已占用内存 + 未占用内存)+ 获取进程内存(实际内存 + 峰值内存)

(3)手动释放内存

5.2、GPU显存

(1)【命令行】查看GPU设备信息:Win + R + dxdiag:显示 - 显示内存VRAM

(2)【GPUtil】获取GPU显存:总内存 + 已占用内存 + 未占用内存 —— 直接读取显卡状态信息

(3)【Torch.cuda】获取进程显存:总显存 + (最大)已分配显存 / 已缓存显存 —— 适用于PyTorch模型训练

5.3、时间

(1)获取当前日期和时间

(2)获取当前时间戳

(3)计算运行时间

(4)获取网络时间(亚洲/上海时区),并计算产品有效期

5.4、UUID(Universally Unique Identifier,通用唯一标识符)

5.5、随机种子,用于确保可复现性 —— 集成多个组件:random、numpy、PyTorch、TensorFlow、JAX

一、什么是内存?

1.1、简介 —— 随机存取存储器(Random Access Memory,RAM)

随机存取存储器(Random Access Memory,RAM):是计算机中用于临时存储数据的一种硬件组件。它是计算机的主要内存之一,用于存储正在运行的程序和操作系统所需的数据。

主要特点:

临时存储:RAM 存储的数据是临时的,意味着当计算机关闭或重启时,其中的数据会被清空。这与永久存储设备(如硬盘驱动器)不同,后者可以长期保存数据。

随机存取:RAM 具备随机访问能力,这意味着它可以快速访问存储中的任何数据,而无需按照特定的顺序来读取。这使得 RAM 非常适合用作计算机的工作内存,以快速存取和处理数据。

相关文章

如何实现路由器之间的连接与设置方法
手机版office365破解版

如何实现路由器之间的连接与设置方法

📅 07-10 👁️ 7216
生姜片敷脸多久 这些妙用要知道
365bet备用投注网址

生姜片敷脸多久 这些妙用要知道

📅 07-12 👁️ 5026
《暗黑黎明2》各类服务器开服日期和时间一览重要性及攻略指引