Over the years using various linux boxes, I've gotten into the habbit of using prelink ritually to accelerate load times of applications.
However, the benefits of running prelink are negated every time a package is reinstalled, as it, all its dependencies, and its dependents, need to be re-prelinked.
This prelinking can cause multiple problems, and one as such is binary MD5 invalidation, which problematic for things that compare MD5 vs upstream revisions or use MD5 for determining whether or not the binary has been changed and is thus not wanted to be cleaned upon package removal.
Recently, computers have gotten a lot faster, and the benefit prelink yields is now hardly notable.
Is using prelink still a rational concept, or can it be casually discarded and left behind as something of a past era?
You can't read it until 23rd July 2009 unless you're subscribed to LWN.net, but you might find http://lwn.net/Articles/341244/ useful.
I wouldn't say that it should be arbitrarily discarded, however I would definitely say that it's use should be given a little more thought.
On a modern higher-end machine that is being frequently updated, prelink may not be a useful optimization. However, there are still a number of cases where it could be worth using. For example, on an older or lower end machine, or on machines that are fairly static and don't experience frequent changes or updates. It could also be worthwhile if you have a high rate of programs being run repeatedly (I can think of a couple of situations where you might have programs being run in rapid succession or in parallel where prelinking could improve performance).
All in all, you need to consider your specific situation, and then decide whether the benefits outweigh the additional work and effort.
Gentoo uses prelink. They get around the md5sum issue by ignoring the prelink info hen calculating the hash.
Prelink will always give you a speed boost although it may become less and less noticeable as hardware gets faster. The only way to know for sure on your hardware is to turn off prelink and see how you like the slowdown on app launches.
Sidenote: OS X used to do a form of prelinking as well but that has been abandoned in favor of a linked cache that the linked maintains itself. Best of both worlds, no binary changing and no real overhead versus normal linking. I hope Linux picks up this idea at some point :)
Update: I recently tried prelinking on Linux, and for a compilation of cscope with many files and processes I got a 5% speed boost.
I would say prelink is definitely useful on multi-user desktop servers such as LTSP servers used in schools and net cafes for example. Not only does prelink speed up application loading, but it also improves RAM utilization and disk thrashing due to contention between users, allowing many more simultaneous users on a server.
I think with the prices of memory falling prelinking is becoming less useful. If you still want to speed things up slightly you might look into preload.
I leave that decision to OS version. If by default OS chooses to call prelink regularly using cron then fine else may be it is not so useful. I hope the creators of distributions have given thought before choosing to add / remove prelink option by default. So I go with them rather than analyzing things again myself.