gpt4 book ai didi

针对 CPU 和内存使用的 GCC 优化

转载 作者:行者123 更新时间:2023-12-04 16:14:18 27 4
gpt4 key购买 nike

有没有办法使用选项标志在 CPU 和内存方面优化 GCC 编译代码?
使用 O3 而不是 01 会增加或减少内存或 CPU 使用量吗?

最佳答案

关于内存使用:

  • -Os减少程序的二进制大小。它有 限量对运行时内存使用的影响(C/C++ 内存分配和释放是“手动”的)。

    我说有限,因为tail recursion optimization可以降低堆栈使用率(此优化也将与 -O2/-O3 一起执行)。
  • -flto ( link time optimization ) 选项还可以降低二进制大小。

  • CPU使用率:
  • 高度优化的代码(例如 -O3 )会给 CPU 带来压力,但这并不意味着 CPU 总功耗更高(它可能会导致执行时间最短)。

    例如。在 Compiler-Based Optimizations Impact on Embedded Software Power Consumption (不是严格的 GCC 相关但很有趣),他们发现启用各种全局速度编译器优化会导致 DSP 的功耗显着增加(平均增加 25%)。尽管这些优化增加了 DSP 的功耗,但运行算法时的能耗平均降低了 95%
  • 配置文件引导优化可以降低 CPU 消耗 ( The risks of using PGO (profile-guided optimization) with production environment )。
  • 看看Can we optimize code to reduce power consumption?

  • 也许你应该使用 -O2不用担心:如果您希望节省电源/内存,应用程序的整体设计将比编译器开关更有效。

    关于针对 CPU 和内存使用的 GCC 优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30848823/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com