这两者有什么区别吗?
A:
# seek back by difference from current position
fp.seek(last_read_byte - fp.tell(), os.SEEK_CUR)
B:
# seek by absolute position from start of the file
fp.seek(last_read_byte)
(fp
是一个python文件对象)
我只是认为 B)可能会从头开始读取文件。我如何检查是否是这种情况? 我应该担心这样的蠢事吗?
答案 0 :(得分:4)
调用搜索不会从头开始重读整个文件。
我会使用绝对的寻求 - 它更简单,正确,阅读;它不会浪费额外的系统调用来告诉;如果文件在调用之间发生变化,它就没有竞争条件......
如果你担心性能,那么测试性能不仅比测试性能更有用,而且更容易,而不是试图猜测它是如何工作的,然后尝试猜测性能影响是什么。只需创建一个大文件,并在一个时间内尝试两个版本。