像Gentoo(或FreeBSD)这样的发行版没有二进制文件,只有包(ports)的源代码.
大多数发行版使用二进制支持(debian等).
第一个问题:
我可以从编译包中获得多少速度增加?我可以从apache或mysql等真实世界的软件包中获得多少速度?即每秒查询?
第二个问题:
二进制包是否意味着它不使用在第一个AMD 64位cpu之后引入的任何cpu指令?使用32位软件包是否意味着软件包将在386上运行并且基本上不使用大多数现代cpu指令?
附加信息:
>我不是在谈论桌面,而是服务器环境.
>我不关心编译时间
>我有更多的服务器,因此使用源代码包的速度提升超过15%是值得的
>请不要发动火焰.
解决方法
如果您没有做任何这些事情,则不需要源代码分发.对于个人使用而言,它们非常方便,因为它们允许您随意增量升级,而不必过多担心二进制兼容性,这在我的企业环境中经常不会引起关注.
值得注意的是,您也可以通过制作自己的RPM软件包或其他方式,使用二进制分发来完成这些工作.管理费用类似.
通过从源代码编译,您基本上不会看到15%的速度提升.在任何合理的情况下,我都不愿意估计它甚至高达5%.从源代码编译可以获得以下几点:
>您可以使用首选的编译器版本
>您可以指示编译器从未在二进制分发包中使用的ISA扩展生成指令,例如AESNI和AVX
但是,编译器实际上很少生成这些,并且当应用程序的性能作为一个整体时,使用它们的总体节省通常非常微小.像RAM访问(和延迟)以及磁盘和设备延迟这样的事情是更大的因素,你应该从那里开始.
可能受益于仅在相对较新的Intel核心i7或i5上运行的自定义编译的应用程序包括执行大量矢量数学运算的应用程序以及执行大量AES加密和解密或需要大量随机数的应用程序.如果您想使用英特尔DRBG,您目前也需要这样做.
如果这些都不适用于你,那么你会对任何基于debian或red hat的发行版感到满意,并且将减少很少的维护开销.