首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -打开文件时的HardDrive访问

Python -打开文件时的HardDrive访问
EN

Stack Overflow用户
提问于 2011-07-11 00:42:19
回答 3查看 1.7K关注 0票数 1

如果您打开一个要读取的文件,读取它,关闭它,然后重复这个过程(在循环中),python是否会连续访问硬盘驱动器?因为这似乎不是从我的实验中得出的,我想知道为什么。

一个(非常)简单的例子:

代码语言:javascript
复制
while True:
    file = open('/var/log/messages', 'r')
    stuff = file.read()
    file.close()
    time.sleep(2)

如果我运行此命令,我的硬盘访问LED将亮起一次,然后硬盘将保持休眠状态。这怎麽可能?python是否以某种方式将文件内容保存在RAM中?因为逻辑告诉我它应该每两秒访问一次硬盘。

EN

回答 3

Stack Overflow用户

发布于 2011-07-11 00:45:54

很可能您的操作系统或文件系统足够智能,如果文件在两者之间没有更改,就可以从OS缓存中提供该文件。

票数 3
EN

Stack Overflow用户

发布于 2011-07-11 00:47:00

答案取决于您的操作系统和硬盘类型。大多数情况下,当你从硬盘上访问一些东西时,这些信息被缓存在主内存中,以防你很快再次需要它。根据操作系统使用的替换策略,数据可能会在主内存中停留一段时间或相对较快地被替换。

在某些情况下,您的硬盘会在自己的内存中缓存频繁访问的信息,然后,尽管可能会访问硬盘,但与搜索驱动器盘片相比,硬盘检索信息并将其发送到处理器的速度会更快。

票数 3
EN

Stack Overflow用户

发布于 2011-07-11 00:48:26

Python不缓存,操作系统缓存。您可以使用top找出这些缓存的大小。在第三行中,它将显示类似以下内容:

代码语言:javascript
复制
Mem:   5923332k total,  5672832k used,   250500k free,    43392k buffers

这意味着操作系统正在使用大约43MB来缓存最近写入硬盘或从硬盘读取的数据。您可以通过将23写入/proc/sys/vm/drop_caches来关闭此缓存。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6642384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档