代码之家  ›  专栏  ›  技术社区  ›  Matthew

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

  •  2
  • Matthew  · 技术社区  · 6 年前

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

    这是我近三十年来的第一个编程项目,所以请假设您是一个知识贫乏的初学者。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Chad    6 年前

    当图书馆要在众多人群中使用时,它们必须按照最低的共同标准建造。

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

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

    用编译的东西 gcc -march=core-i7 可以启用使软件不在core i3或AMD FX等上运行的选项。

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

    对于给定的用例,我怀疑您是否会看到任何明显的性能影响。也就是说,我不想低估这些优化的重要性,因为对于某些用途来说,它们会产生巨大的影响。