gpt4 book ai didi

delphi - 是否有可能暗示特定的 if 语句分支最有可能在 Delphi 编译器中执行?

转载 作者:行者123 更新时间:2023-12-03 15:58:14 26 4
gpt4 key购买 nike

这是其他编译器的常见问题( C#VC++GCC 。)我想知道 Delphi 编译器(任何版本;我目前使用 2010 和 XE2 以及很快就会使用XE4。)

我在编写高性能代码时遇到一种情况,必须检查条件,但在大多数情况下不需要采取任何操作:

if UnlikelyCondition then
HandleUnlikelyCondition
else
HandleLikelyCondition
end;

对于可能的情况,通常无需采取任何措施:

if UnlikelyCondition then
HandleUnlikelyCondition
else
Exit
end;

我想向编译器提示 if 语句的第二个分支是要优化的分支。我怎样才能在Delphi中做到这一点?

当前代码

目前,我编写的代码假设 if statement's condition equalling true是最好的优化:

if LikelyCondition then
HandleLikelyCondition
else
HandleUnlikelyCondition
end;

if LikelyCondition then Exit;
HandleUnlikelyCondition;

在刚刚使用这两个示例中的第一个示例进行的测试中,通过像这样重构我的 if 语句,我获得了 50% 的额外性能提升,即假设 if 语句的条件为true。也许问题的另一种表达方式是,这是我能做的最好的事情吗?

如果您之前没有遇到过分支错误预测,this epic answer is an illuminating read.

最佳答案

语言或编译器中没有任何内容允许您提供分支预测的提示。无论如何,即使编译器发出包含提示的目标代码,现代体系结构也会忽略这些提示。

关于delphi - 是否有可能暗示特定的 if 语句分支最有可能在 Delphi 编译器中执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17503927/

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