编译和二进制Linux发行版包之间的性能差异

编译和二进制Linux发行版包之间的性能差异,第1张

概述我在互联网上搜索了很多,但找不到确切的答案. 像Gentoo(或FreeBSD)这样的发行版没有二进制文件,只有包(ports)的源代码. 大多数发行版使用二进制支持(debian等). 第一个问题: 我可以从编译包中获得多少速度增加?我可以从apache或mysql等真实世界的软件包中获得多少速度?即每秒查询? 第二个问题: 二进制包是否意味着它不使用在第一个AMD 64位CPU之后引入的任何C 我在互联网上搜索了很多,但找不到确切的答案.

像Gentoo(或FreeBSD)这样的发行版没有二进制文件,只有包(ports)的源代码.

大多数发行版使用二进制支持(debian等).

第一个问题:
我可以从编译包中获得多少速度增加?我可以从apache或mysql等真实世界的软件包中获得多少速度?即每秒查询?

第二个问题:
二进制包是否意味着它不使用在第一个AMD 64位cpu之后引入的任何cpu指令?使用32位软件包是否意味着软件包将在386上运行并且基本上不使用大多数现代cpu指令?

附加信息:

>我不是在谈论桌面,而是服务器环境.
>我不关心编译时间
>我有更多的服务器,因此使用源代码包的速度提升超过15%是值得的
>请不要发动火焰.

解决方法 几乎在所有情况下,性能差异都很小,而且不值得.使用源代码分发的好理由(在滚动自己的二进制包时,如gentoo的绑定系统允许)包括:

>部署自己的自定义补丁
>轻松自定义内核
>打包您自己的更新

如果您没有做任何这些事情,则不需要源代码分发.对于个人使用而言,它们非常方便,因为它们允许您随意增量升级,而不必过多担心二进制兼容性,这在我的企业环境中经常不会引起关注.

值得注意的是,您也可以通过制作自己的RPM软件包或其他方式,使用二进制分发来完成这些工作.管理费用类似.

通过从源代码编译,您基本上不会看到15%的速度提升.在任何合理的情况下,我都不愿意估计它甚至高达5%.从源代码编译可以获得以下几点:

>您可以使用首选的编译器版本
>您可以指示编译器从未在二进制分发包中使用的ISA扩展生成指令,例如AESNI和AVX

但是,编译器实际上很少生成这些,并且当应用程序的性能作为一个整体时,使用它们的总体节省通常非常微小.像RAM访问(和延迟)以及磁盘和设备延迟这样的事情是更大的因素,你应该从那里开始.

可能受益于仅在相对较新的Intel核心i7或i5上运行的自定义编译的应用程序包括执行大量矢量数学运算的应用程序以及执行大量AES加密和解密或需要大量随机数的应用程序.如果您想使用英特尔DRBG,您目前也需要这样做.

如果这些都不适用于你,那么你会对任何基于debian或red hat的发行版感到满意,并且将减少很少的维护开销.

总结

以上是内存溢出为你收集整理的编译和二进制Linux发行版/包之间的性能差异全部内容,希望文章能够帮你解决编译和二进制Linux发行版/包之间的性能差异所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1043199.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存