Linux上源代码编译安装软件,是否能使该软件在性能上有所提升?

在linux上,有人推荐编译源代码安装,常见有以下几种理由:

  • 可以提升软件的性能
  • 方便软件升级、管理
  • 为了各种依赖包的安全性

还有人反对不懂参数优化的人编译安装软件, 理由如下

  • 编译安装可控性差、费时费力
  • 如果不懂C和参数优化,不能对软件的性能起到优化作用

各位有什么看法?

阅读 6.5k
3 个回答

通常来说,没有可以感觉到的差异。编译安装一般是因为软件源里没有对应的版本,或者编译选项与需求不一致(缺少某个需要的特性之类的)。

因为不被包管理器管理,所以自己编译安装的软件非常难以管理和升级(除非你决定不升级系统的任何软件(只使用安全更新)):你很难跟踪安装了哪些文件,你的软件依赖哪些软件和库,它们的版本要求是多少。而且管理一个软件是非常费时费力的事情(比如又有新漏洞了,你得马上知晓并且更新)。

大多数情况下,自己编译安装意义不大:

一方面,自行优化编译是可能得到性能提升的,但服务器其他依赖软件的升级就麻烦了,需要一定的经验。所以,是否要从编译中找性能,不能一概而论。

另一方面,源中的二进制包也是别人编译出来的,适合大多数环境、使用常规配置,有时候我们需要减少内存使用,或者增加默认没编译进来的模块,此时就不得不自行编译了。但这个时候优化速度不是我们的目标。

综上,除非是 明确需要,对于一般配置都不错的服务器来说,没有自行编译的必要。

使用编译优化参数针对一些特殊环境和场景以及代码 是可能有优化提升性能的可能的,不过对工程师的要求相对较高,因为处理好依赖。

不过一般的商业系统都要求自己编译。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题