python - Python读取文件时使用什么内存资源
问题描述
我很好奇读取文件时使用了什么内存资源。块存储在哪里?它是堆,因此是RAM?
with open("file.txt", "r") as fd:
block = fd.read(64)
解决方案
内存块(与变量block
不同)可能在某个时候存储在 RAM 中,但不在您的进程堆中。操作系统做了一些非常复杂的事情(查看信息虚拟内存以获得更多信息)为每个进程提供自己的内存部分。操作系统内核也占了很大一部分。
现在,read
是一个系统调用,这意味着您的处理器将方向盘交给内核来完成它的工作。然后内核以它想要的任何方式处理从磁盘到内存的复制,但只有您请求的数据才会存储在进程的内存块中。在您的示例中,内核会以某种方式获取块,可能将其存储在 RAM 中的某个位置(但它也会利用处理器缓存以允许稍后更快地访问),但唯一的保证是最多64 个字节将存储在堆上的变量(由 name 指向block
)。
推荐阅读
- rust - `::parse()` 在结构上做了什么?
- python - 将函数 tf.contrib.training.bucket_by_sequence_length() 从 1.x 重写为 tensorflow 2.x
- haskell - 为什么 Haskell 9.0 的线性类型没有零,而 Idris 2 有?
- ruby-on-rails - 使用 simple_form 和 tailwind_wrapper 填充时间字段
- python - ValueError:logits 和标签必须具有相同的形状 ((None, 10) vs (None, 1))
- sql-server - 如何在 SQL Server 中旋转日期表?
- javascript - 录制时如何切换网络摄像头?
- amazon-web-services - 如何让 AWS Lambda 函数访问互联网但也连接到 RDS DB
- google-sheets-api - Google 电子表格 > 表格 API
- c# - Unity 新输入系统 .started 不起作用,但 .performed 工作两次