多年来,我使用过各种 Linux 系统,养成了使用预链接仪式性地加快应用程序的加载时间。
但是,每次重新安装包时,运行预链接的好处就会被抵消,因为它、它的所有依赖项以及它的依赖项都需要重新预链接。
这种预链接可能会导致多个问题,其中之一就是二进制 MD5 无效,这对于比较 MD5 与上游修订版或使用 MD5 来确定二进制文件是否已更改并且因此不想在删除包时进行清理会带来问题。
最近,计算机的运行速度越来越快,预链接带来的好处已经不明显了。
使用预链接是否仍然是一个合理的概念,或者是否可以将其随意丢弃并作为过去时代的东西留下?
答案1
除非你订阅了 LWN.net,否则你直到 2009 年 7 月 23 日才能阅读它,但你可能会发现http://lwn.net/Articles/341244/有用。
答案2
我不会说应该任意丢弃它,但我肯定会说应该多加考虑它的用途。
在经常更新的现代高端机器上,预链接可能不是一种有用的优化。但是,仍然有许多情况下值得使用它。例如,在较旧或较低端的机器上,或者在相当静态且不会频繁更改或更新的机器上。如果您有高频率的程序重复运行,它也可能是值得的(我可以想到几种情况,在这些情况下,您可能会快速连续或并行运行程序,此时预链接可以提高性能)。
总而言之,您需要考虑您的具体情况,然后决定收益是否大于额外的工作和努力。
答案3
我想说 prelink 在多用户桌面服务器(例如学校和网吧使用的 LTSP 服务器)上绝对有用。prelink 不仅可以加快应用程序加载速度,还可以改善 RAM 利用率和因用户争用而导致的磁盘抖动,从而允许更多用户同时使用一台服务器。
答案4
我认为随着内存价格的下降,预链接变得越来越不实用。如果你仍然想稍微加快速度,你可以考虑预加载。