gpt4 book ai didi

optimization - 过度使用函数调用会影响性能吗?特别是在 Fortran 中

转载 作者:行者123 更新时间:2023-12-03 15:57:06 25 4
gpt4 key购买 nike

我习惯性地写了很多功能的代码,我发现它更清晰。但是现在我正在用 Fortran 编写一些需要非常高效的代码,我想知道过度使用函数是否会减慢它的速度,或者编译器是否会解决正在发生的事情并进行优化?

我知道在 Java/Python 等中,每个函数都是一个对象,因此创建大量函数需要在内存中创建它们。我也知道在 Haskell 中函数被简化为彼此,所以它没有什么区别。

有人知道 Fortran 的情况吗?使用意图/纯函数/声明较少的局部变量/其他有什么区别吗?

最佳答案

对于基于堆栈的语言(如 Fortran),函数调用会带来性能成本。他们必须添加到堆栈中等等。

因此,如果可能,大多数编译器会尝试积极地内联函数调用。大多数情况下,编译器会做出是否在程序中内联某些函数的正确选择。

这种自动内联过程意味着编写您的函数(根本)没有额外的成本。

这意味着您应该尽可能干净和有条理地编写代码,并且编译器很可能会为您进行这些优化。解决问题的整体策略比担心函数调用的性能更有效更重要。

关于optimization - 过度使用函数调用会影响性能吗?特别是在 Fortran 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3214648/

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