e965d6a895
simply keep an index into the last access on the circular list and begin searches at that point. An LRU list is inappropriate here since the vast majority of accesses will occur in the same order that the list is created in. The only case where an LRU is remotely useful here is when reading from a file and the user is jumping to randomish positions and constantly returning to some central position. Even for this case it is such a small optimization as not to be noticed in an interactive program such as more(1). This change results in a _tremendously_ noticable speed-up when reading long files through a pipe (where long = ~200k, machine = ~2.5h single-disk worldstone).