我不知道为什么,但在运行 lion 的 Macbook Pro 上,当我对正在写入的日志文件发出“tail -f”时,更新速度很慢。我以前在上一家公司一直使用此命令,但通常是在 Linux 机器上。我能想到的唯一可能减慢更新速度的原因是输出缓冲和/或 Mac 和 Linux 上的更新间隔不同。我尝试了几个命令,它们都相对较快地写入 stout,但对 tail 命令的更新速度很慢。有什么想法吗?
更新 我只是运行了一个包含大量打印内容的 Python 脚本,然后重定向到文件 vi“> my output.log”。我希望看到接近实时的更新,但事实似乎并非如此。
答案1
系统对文件系统的要求比对坐在控制台前的普通用户的要求更高,并且会缓冲输出,而不会将其发送到终端。此外,终端比文件系统更适合处理输入的行,文件系统总是处理块。每行之后刷新结果会影响性能,但对于您的用例来说,这可能不是问题。
要关闭缓冲,您可以运行脚本python -u SCRIPT
或使用unbuffer
expect 包(Mac 可能不可用)。