c++ - 生成最快的可执行文件

标签 c++ windows visual-studio-2008 optimization

我有一个非常大的程序,我一直在 visual studio 下编译(v6 然后迁移到 2008)。我需要可执行文件尽可能快地运行。该程序的大部分时间都花在处理各种大小的整数上,并且执行的 IO 很少。

显然我会选择最大优化,但似乎有很多事情可以做,但不属于优化标题,但仍然会影响可执行文件的速度。例如选择 __fastcall 调用约定或将结构成员对齐设置为较大的数字。

所以我的问题是:我应该使用其他编译器/链接器选项来使程序更快,而这些选项不受“属性”对话框的“优化”页面的控制。

编辑:我已经广泛使用分析器。

最佳答案

要考虑的另一个优化选项是优化大小。有时,由于更好的缓存局部性,大小优化的代码可以比速度优化的代码运行得更快。

此外,除了优化操作之外,在分析器下运行代码并查看瓶颈在哪里。花在一个好的分析器上的时间可以在性能上获得很大的好处(特别是如果对代码的缓存友好性提供反馈的话)。

最终,您可能永远不会知道“尽可能快”是什么意思。您最终需要满足于“这对于我们的目的来说已经足够快了”。

关于c++ - 生成最快的可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1668023/

相关文章:

java - 在Eclipse中编译,但不在Windows命令提示符下编译

c++ - 如何在 visual studio(c++) 中将文字中文字符串分配给 wchar_t*?

windows - 使用 Windows 电源管理 API 调暗显示器

c++ - 如何使用 move 语义正确管理资源?

c++ - `::*`(冒号冒号星)在 C++ 中意味着什么?

c# - 使用 NET Compact Framework 从 CAB 安装后重新启动

c++ - 指向整数的成员函数指针?

.net - VS2008,没有嵌入应用程序图标?

c++ - 使用 '\n' 而不是 endl 会影响输出,为什么?

c++ - 与 Thrift 或 Protocol Buffers 的双向通信