【发布时间】:2013-05-02 12:19:08
【问题描述】:
我的 websocket 脚本有问题。随着时间的推移,它会消耗越来越多的 CPU。我发现的一种补救措施是清除关联的日志文件。这暂时解决了这个问题,但 CPU 使用率在一天多一点的时间内就增加到了 120%。 (在linux服务器上使用top命令)
执行文件写入的脚本部分对我来说有点奇怪。代码如下:
f = open(file, 'a')
f.write(line+"\n")
os.fsync(f.fileno())
f.flush()
f.close
我不是 Python 专家,但对于初学者来说,我认为最后三件事的作用大致相同。 python手册指出http://docs.python.org/2/library/os.html#os.fsync f.flush 和 os.fsync 应该是相反的顺序...
我可以使用吗:
f = open(file, 'a')
f.write(line+"\n")
f.close
不应该是:f.close()??
有什么想法吗?
【问题讨论】:
-
你永远不会关闭你的文件,是的,它应该是
f.close() -
你说得对,
close()意味着flush(),我不知道fsync()是什么意思如果你已经在处理文件对象而不是在原始句柄上。
标签: python performance file-io python-2.7