针对CPU和内存使用的GCC优化
有没有一种方法可以使用选项标志在cpu和内存方面优化GCC编译代码?针对CPU和内存使用的GCC优化,gcc,memory,cpu-usage,compiler-optimization,Gcc,Memory,Cpu Usage,Compiler Optimization,有没有一种方法可以使用选项标志在cpu和内存方面优化GCC编译代码? 使用O3而不是01是否会增加或减少内存或cpu使用量 您可以尝试-Os,这类似于-O2(良好的CPU速度),同时尝试减小二进制大小 查看各种优化。关于内存使用: -Os减少程序的二进制大小。它对运行时内存使用的影响有限(C/C++内存分配和释放是“手动的”) 我说是有限的,因为它可以降低堆栈使用率(此优化也将使用-O2/-O3) -flto()选项也可以降低二进制大小 CPU使用率: 高度优化的代码(例如,-O3)会给C
使用O3而不是01是否会增加或减少内存或cpu使用量 您可以尝试
-Os
,这类似于-O2
(良好的CPU速度),同时尝试减小二进制大小
查看各种优化。关于内存使用:
减少程序的二进制大小。它对运行时内存使用的影响有限(C/C++内存分配和释放是“手动的”) 我说是有限的,因为它可以降低堆栈使用率(此优化也将使用-Os
/-O2
)-O3
()选项也可以降低二进制大小-flto
- 高度优化的代码(例如,
)会给CPU带来压力,但这并不意味着CPU总功耗会更高(它可能会导致最小的执行时间) 例如,在(与GCC无关但有趣的)中,他们发现启用各种全局速度编译器优化会导致DSP功耗显著增加(平均增加25%)。尽管这些优化增加了DSP的功耗,但运行算法时的能耗平均降低了95%-O3
- 配置文件引导优化可以降低CPU消耗()
- 看看
可能您应该使用
-O2
,不要担心:如果您希望节省电源/内存,那么应用程序的整体设计将比编译器开关更有效。上面介绍了代码大小优化
我只关注CPU优化。您可以编写处理器利用率低的非常好/优化的代码,以及最大化CPU利用率的非常差/未优化的代码
那么,如何最有效地使用处理器呢
祝你好运。通常优化的代码会消耗更多的cpu(更少的时间)。你的意思是优化可执行文件的大小吗?这是编译器在内存消耗方面为您所做的唯一优化。如果您以更“节俭”的方式编写代码,那么您将有更好的机会减少代码的大小。编译器可以做的只有这么多来优化它,但它却受到了您编写代码的限制。以前有没有研究过编译器优化对%CPU和内存的影响的工作?你给我的链接很有趣,但我正在努力寻找一些与mem和cpu相关的作品。非常感谢。