自己编译源代码比使用yum性能更好吗?
答案1
好吧,使用 yum 您会收到一个适合发行版的预编译程序。
选择,在同一个分布上进行源编译不会带来任何加速,除非您弄乱编译器选项,或者构建一个将库与二进制文件链接起来的静态版本,而不必在加载时链接库。
因此,仅仅下载源代码并进行编译并不一定会导致执行速度更快。在许多情况下,它会更慢。因为准备软件包的人比你更精通和了解这个特定的软件包。
但是,如果您知道自己在做什么,您可以配置编译器,甚至可以使用更好的编译器并在需要时编辑代码库,以产生更好的结果。
答案2
当你编译它时,程序会根据你的硬件进行定制,并且不包含使它可移植所需的额外数据。不过,性能提升并不明显,所以你不必担心编译你的东西,除非你对此很挑剔。
答案3
另一点是依赖关系。
在类 Unix 系统中,程序经常相互调用,并且设计得非常模块化。例如,mplayer 可以使用 DirectFB、使用 aalib 或 libcaca、使用标准 fbcon 帧缓冲区、使用 OpenGL 视频输出、使用 X 等来输出视频。
例如,如果您不需要由 aalib 和 libcaca 生成的 ACII 输出,则在编译程序时,您可以禁用它们。另一方面,软件包维护者可能会认为这些选项非常受欢迎,并在软件包中启用它们。
如果您使用该包,部分不需要的代码将保留在程序中,并且会降低执行速度。
有时,情况会变得更糟。软件包维护者可能会决定编译一个支持其他软件包的程序。然后该软件包被标记为依赖项,需要安装。如果您的系统由于某种原因无法很好地与安装的其他软件包配合使用,您将无法使用您想要使用的程序,因为它对某些软件包的支持是可选的。当 PulseAudio 刚推出时,我就遇到过这样的问题。它无法在我的系统上运行,然后我在切换到 ALSA 时遇到了问题,因为大量音频软件包依赖于 Pulse,即使对 Pulse 的支持对软件包的运行并不重要。