Alexey Tourbin
7d414b68aa
set.c: use plain array to make linear search even simpler
The only reason for using a linked list is to make LRU reordering O(1). This change replaces the linked list with a plain array. The inner loop is now very tight, but reordering involves memmove(3) and is O(N), since on average, half the array has to be shifted. Note, however, that the leading part of the array which is to be shifted is already there in L1 cache, and modern memmove(3) must be very efficient - I expect it to take much fewer instructions than the loop itself.
This is RPM, the Red Hat Package Manager. The latest releases are always available at: ftp://ftp.rpm.org/pub/rpm Additional RPM documentation (papers, slides, HOWTOs) can also be found at the same site, as well as http://www.rpm.org. There is a mailing list for discussion of RPM issues, rpm-list@redhat.com. To subscribe, send a message to rpm-list-request@redhat.com with the word "subscribe" in the subject line. RPM was originally written by: Erik Troan <ewt@redhat.com> Marc Ewing <marc@redhat.com> See the CREDITS file for a list of folks who have helped us out tremendously. RPM is Copyright (c) 1998 by Red Hat Software, Inc., and may be distributed under the terms of the GPL and LGPL (see the file COPYING for details).
Description
Languages
C
88.7%
Shell
8.9%
M4
1.3%
Makefile
1%