gpt4 book ai didi

Delphi 2010内联没用吗?

转载 作者:行者123 更新时间:2023-12-03 15:04:19 27 4
gpt4 key购买 nike

Delphi 中的内联函数或过程是什么(特别是 v2010,但我在 Turbo Delphi 中也遇到了同样的问题)?

帮助中有一些关于它可能并不总是内联函数的警告,因为“某些标准”无论这意味着什么。

但我发现通常内联函数(即使是具有 3 或 4 行代码的非常简单的函数)会减慢代码而不是加快代码速度。

一个好主意是“内联所有内容”的编译器选项。我不在乎我的 exe 是否会增长 50% 左右以使其运行得更快。

有没有一种方法可以强制 Delphi 真正内联代码,即使编译器没有决定内联代码?这确实有帮助。否则,您需要进行“手动内联”,在代码的多个区域中复制过程代码,并添加诸如“//内联在此失败,因此如果您更改接下来的 5 行,请在该代码存在的其他 8 个重复点中更改它们” ”

这里有什么提示吗?

最佳答案

有一个编译器选项可以自动内联短例程。在“项目选项”中,在“Delphi 编译器”->“编译”->“代码生成”下,将“代码内联控制”设置为“自动”。但请注意,这只能在发布版本中进行,因为内联代码很难调试。

此外,您说过您不介意让程序变得更大,只要它变得更快,但内联通常会使其变慢。您应该意识到这可能是相关的。编译的代码越大,指令缓存未命中的次数就越多,从而减慢执行速度。

如果您确实想加快程序速度,请通过分析器运行它。我推荐Sampling Profiler是免费的,可与 Delphi 代码(包括 2010)一起使用,并且不会减慢您的执行速度。它将向您显示一份详细报告,说明您实际上花费最多时间执行的代码。一旦发现这一点,您就可以专注于瓶颈并尝试优化它们。

关于Delphi 2010内联没用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1811654/

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