我很好奇读取文件时使用的是什么内存资源。 block 存储在哪里?是堆还是 RAM?
with open("file.txt", "r") as fd:
block = fd.read(64)
最佳答案
内存块(与block
变量不同)可能在某个时候存储在 RAM 中,但不在您的进程堆中。操作系统做了一些非常复杂的事情(查看虚拟内存信息以获得更多相关信息)来为每个进程提供自己的内存部分。 OS内核也占了很大一部分。
现在,read
是一个系统调用,这意味着您的处理器将方向盘交给内核来完成它的工作。然后内核以任何它想要的方式处理从磁盘到内存的复制,但只有您请求的数据才会存储在进程的内存块中。在你的例子中,内核会以某种方式获取 block ,可能将它存储在 RAM 中的某个地方(但它也会利用处理器缓存以允许以后更快地访问),但唯一的保证是最多 64它的字节将存储在堆上的一个变量中(由名称 block
指向)。
关于Python读取文件时使用什么内存资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51995139/