gpt4 book ai didi

c++ - 通过避免函数来提高程序速度? (C++)

转载 作者:搜寻专家 更新时间:2023-10-31 01:15:57 24 4
gpt4 key购买 nike

当谈到过程编程时,功能分解是维护复杂代码的理想选择。然而,函数是昂贵的——添加到调用堆栈、传递参数、存储返回地址。所有这些都需要额外的时间!当速度至关重要时,我如何才能两全其美?我想要一个高度分解的程序,没有任何由函数调用引入的必要开销。我熟悉关键字:“inline”,但这似乎只是对编译器的一个建议,如果程序员使用不当,它会产生一个更慢的程序。我正在使用 g++,所以 -03 标志是否会优化我调用函数的函数。我只是想知道,我的担忧是否成立,是否有任何方法可以解决这个问题。

最佳答案

首先,与往常一样,在处理性能问题时,您应该尝试使用性能分析器衡量您的瓶颈是什么。首先出现的通常不是函数调用,而且有很大差异。如果您这样做了,请继续阅读。

然后,您可以使用 inline 关键字稍微预测一下您想要内联的函数。编译器通常足够聪明,知道什么该内联,什么不该内联(它可以内联您忘记的函数,如果他认为这无济于事,则可能不会内联您提到的一些函数)。

如果(真的)您仍然想要提高函数调用的性能并想要强制内联,一些编译器允许您这样做(参见 question)。请考虑大量内联实际上可能会降低性能:您的代码将使用大量内存,并且您的代码可能会出现比以前更多的缓存未命中(这不好)。

关于c++ - 通过避免函数来提高程序速度? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9552164/

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