自己编译公共库会提高性能吗?
Will compiling common libraries myself improve performance?
作为一个业余爱好项目,我正在尝试使用 Visual Studio Express 2015 编译开源游戏 Simutrans(作为对游戏玩法进行一些小改动的先驱)。它需要一些通用库(bzip、pthreads、SDL,可能还有 Allegro)。两者 the Simutrans compilation instructions and some of the SDL documentation seem to assume that people should or will build these libraries themselves. From searching Stack Overflow and other forums, I have learned that this is sometimes necessary if you are porting something to an exotic platform (BeOs on PowerPC?!), in order to improve your programming knowledge, or because you want specific compilation options。 None 这些适用于我:我正在使用沼泽标准 Wintel 系统,我不想了解 SDL;仅仅学习 C++ 和 Simutrans 就需要数年时间。在我自己的计算机上从源代码编译库是否会[编辑:显着]以任何方式提高性能,或者有与我的情况相关的任何其他优势?
这是我将近 30 年来的第一个编程项目,所以请假设您是在与一个完全没有知识的初学者交谈。
当图书馆是为供大量人群使用而建造时,它们必须按照最低公分母建造。
在为部署构建库时要考虑的事情是它们支持哪些平台,以及任何给定部署所需的最低规范是什么。
在本地编译程序和库时,您可以针对硬件上可用的特定优化来提高性能,这些优化在最低要求的硬件上可能不可用。
用 gcc -march=core-i7
编译的东西可以启用使软件不能 运行 在核心 i3 或 AMD FX 等上的选项
您还可以在可执行文件大小与执行速度、内存访问类型等方面进行优化权衡
对于您给定的用例,我怀疑您会看到任何明显的性能影响。也就是说,我不想淡化这些优化的重要性,因为对于某些用途,它们会产生令人难以置信的差异。
作为一个业余爱好项目,我正在尝试使用 Visual Studio Express 2015 编译开源游戏 Simutrans(作为对游戏玩法进行一些小改动的先驱)。它需要一些通用库(bzip、pthreads、SDL,可能还有 Allegro)。两者 the Simutrans compilation instructions and some of the SDL documentation seem to assume that people should or will build these libraries themselves. From searching Stack Overflow and other forums, I have learned that this is sometimes necessary if you are porting something to an exotic platform (BeOs on PowerPC?!), in order to improve your programming knowledge, or because you want specific compilation options。 None 这些适用于我:我正在使用沼泽标准 Wintel 系统,我不想了解 SDL;仅仅学习 C++ 和 Simutrans 就需要数年时间。在我自己的计算机上从源代码编译库是否会[编辑:显着]以任何方式提高性能,或者有与我的情况相关的任何其他优势?
这是我将近 30 年来的第一个编程项目,所以请假设您是在与一个完全没有知识的初学者交谈。
当图书馆是为供大量人群使用而建造时,它们必须按照最低公分母建造。
在为部署构建库时要考虑的事情是它们支持哪些平台,以及任何给定部署所需的最低规范是什么。
在本地编译程序和库时,您可以针对硬件上可用的特定优化来提高性能,这些优化在最低要求的硬件上可能不可用。
用 gcc -march=core-i7
编译的东西可以启用使软件不能 运行 在核心 i3 或 AMD FX 等上的选项
您还可以在可执行文件大小与执行速度、内存访问类型等方面进行优化权衡
对于您给定的用例,我怀疑您会看到任何明显的性能影响。也就是说,我不想淡化这些优化的重要性,因为对于某些用途,它们会产生令人难以置信的差异。