Tal*_*Guy 5 delphi inline inlining delphi-2010
Delphi中的内联函数或过程有什么用处(特别是v2010这里,但我在Turbo Delphi中遇到了同样的问题)?
在帮助中有一些discalimer可能并不总是内联函数,因为"某些标准"无论这意味着什么.
但我发现通常内联函数(即使是非常简单的函数有3行或4行代码)也会减慢代码速度而不是加速代码.
一个好主意是"内联所有内容"的编译器选项.我不在乎我的exe是否增长了50%左右才能让它更快地运行.
是否有一种方法可以强制Delphi真正内联代码,即使它没有被编译器限制?那真的会有所帮助.否则,您需要在代码的多个区域中执行"手动内联"复制过程代码,并使用"//内联失败"这样的备注,因此如果您更改接下来的5行,则在其他8个重复点中更改它们,此代码存在"
有什么提示吗?
Mas*_*ler 11
有一个编译器选项可以自动内联短例程.在"项目选项"中的"Delphi编译器 - >编译 - >代码生成"下,将"代码内联控件"设置为"自动".但请注意,这应该只在发布版本上,因为内联代码很难调试.
另外,你说你不介意只要它变得更快就让你的程序更大,但是通常内联使它变得更慢.您应该知道这可能是相关的.编译代码越大,指令缓存就会越少,这会降低执行速度.
如果您真的想加快程序速度,请通过分析器运行它.我建议Sampling Profiler是免费的,可以使用Delphi代码(包括2010),并且不会降低执行速度.它会向您显示一个详细的报告,说明您实际花费的代码最多的时间.一旦找到了,就可以专注于瓶颈并尝试优化它们.
| 归档时间: |
|
| 查看次数: |
1454 次 |
| 最近记录: |