自己编译公共库会提高性能吗?

时间:2018-05-04 12:52:40

标签: visual-c++ compilation sdl libraries

作为一个爱好项目,我正在尝试使用Visual Studio Express 2015编译开源游戏Simutrans(作为对游戏玩法进行一些小改动的前兆)。它需要一些公共库(bzip,pthreads,SDL和可能的Allegro)。 the Simutrans compilation instructions和一些SDL文档似乎都假设人们应该或将要自己构建这些库。通过搜索Stack Overflow和其他论坛,我了解到,如果您将某些内容移植到异国情调的平台(PowerPC上的BeOs ?!),以便提高您的编程知识,或者因为you want specific compilation options,这有时是必要的。这些都不适用于我:我使用的是沼泽标准的Wintel系统,我不想学习SDL;只学习C ++和Simutrans需要数年时间。将在我自己的计算机上从源代码编译库[编辑:显着]以任何方式改善性能,或者具有与我的情况相关的任何其他优势?

这是我近三十年来的第一个编程项目,所以请假设您正在与一个知识渊博的初学者交谈。

1 个答案:

答案 0 :(得分:1)

当构建库以供大群体使用时,它们必须构建为最低的公分母。

在构建用于部署的库时要考虑的事项是它们支持的平台,以及任何给定部署所需的最低规范。

在本地编译程序和库时,您可以通过定位硬件上可用的特定优化来提高性能,这些优化可能无法在最低要求的硬件上使用。

使用gcc -march=core-i7编译的内容可以启用使软件无法在核心i3或AMD FX等上运行的选项。

在可执行文件大小与执行速度,内存访问类型等方面,您还可以进行优化权衡。

对于您的特定用例,我怀疑您会看到任何明显的性能影响。也就是说,我不想淡化这些优化的重要性,因为在某些用途中它们会产生令人难以置信的差异。