Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python读取文件时使用的内存资源是什么_Python - Fatal编程技术网

Python读取文件时使用的内存资源是什么

Python读取文件时使用的内存资源是什么,python,Python,我很好奇读取文件时使用了什么内存资源。区块存储在哪里?它是堆还是RAM with open("file.txt", "r") as fd: block = fd.read(64) 内存块(与块变量不同)可能在某个时候存储在RAM中,但不在进程堆中。操作系统会做一些非常复杂的事情(查看信息虚拟内存了解更多信息),为每个进程提供自己的内存部分。操作系统内核也占据了很大的一部分 现在,read是一个系统调用,这意味着处理器将方向盘交给内核来完成它的工作。然后,内核以它想要的任何方式处理从磁盘

我很好奇读取文件时使用了什么内存资源。区块存储在哪里?它是堆还是RAM

with open("file.txt", "r") as fd:
    block = fd.read(64)
内存块(与
变量不同)可能在某个时候存储在RAM中,但不在进程堆中。操作系统会做一些非常复杂的事情(查看信息虚拟内存了解更多信息),为每个进程提供自己的内存部分。操作系统内核也占据了很大的一部分

现在,
read
是一个系统调用,这意味着处理器将方向盘交给内核来完成它的工作。然后,内核以它想要的任何方式处理从磁盘到内存的复制,但只有您请求的数据才会存储在进程的内存块中。在您的示例中,内核会以某种方式获取该块,可能会将其存储在RAM中的某个位置(但它也会利用处理器缓存以允许以后更快地访问),但唯一的保证是最多64个字节将存储在堆上的一个变量中(由名称
block
指向)