问一个/dev/shm 的问题

2018-10-12 14:57:48 +08:00
 wangxiaolin

1.txt 中有 30000000 条数据,其中每行一个数字。

1.py 如下:

import sys
import time
count = 0
begin = time.time()
for line in sys.stdin:
	count = count + 1
print time.time() - begin

在本地磁盘上运行 python 1.py < 1.txt 2.40708708763

python 1.py < /dev/shm/1.txt 2.37829995155

2 个时间相差不大,是我用错了嘛?

1857 次点击
所在节点    程序员
4 条回复
iwtbauh
2018-10-12 15:12:04 +08:00
文件系统通常具有页面缓存,你访问文件系统上的文件实际上是直接命中在内存中的
iwtbauh
2018-10-12 15:13:55 +08:00
要想测试真实的访问硬盘读取文件的速度,你可以

sudo su
sync
echo 3 > /proc/sys/vm/drop_caches

然后再读取测试
wangxiaolin
2018-10-12 17:10:06 +08:00
@iwtbauh 好的,多谢,我试试
0ZXYDDu796nVCFxq
2018-10-12 17:16:05 +08:00
除了#2 说的,还有就是
建议用 dd 来测试磁盘性能,而不是 Python

time dd if=1.txt bs=1024k of=/dev/null

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/497061

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX