在fedora 16上,一个小程序的运行时间(1)只对一个文件执行10次1024字节的写入,报告"24个输出“。我期望I/O计数为10。请注意,如果我在程序上运行strace,我可以看到10个write()调用。那么time(1)报告的I/O计数是多少?非常感谢
#!/usr/bin/python
import os
import pdb
SIZE_IO=1024
IONB=10
def test1(file):
#pdb.set_trace()
buffer= '\x01' * SIZE_IO
fd = os.open(file, os.O_CREAT|os.O_RDWR, 0777)
for ix in range(IONB):
len = os.write(fd, buffer)
print len
os.close(fd)
return 1
if name__== "__main":
test1("ttt.txt")
print 'ok'发布于 2012-05-23 23:06:19
不是每个打印都会导致写入吗?
发布于 2012-05-24 00:00:10
摘自time(1)手册页的ACCURACY部分:
据称'%I‘和'%O’值只是‘实际’输入和输出,不包括由缓存设备提供的值。对于工作站,“%I”和“%O”报告的“实际”I/O的含义可能会混淆,尤其是对于无盘工作站。
https://stackoverflow.com/questions/10722160
复制相似问题