欢迎光临散文网 会员登陆 & 注册

Godot Source Code Note 2

2023-06-26 16:30 作者:中专人  | 我要投稿

宏函数likely(x)和unlikely(x)

先贴一段Godot中的代码:

GCC编译器可以对__GUNC__宏进行条件编译,启用unlikely(x)和likely(x)宏函数。

背景知识:现代CPU流水线中为加快指令运行,一般存在分支预测机制。代码中某些分支是经常发生或很少发生的,编译器与CPU对此并不知晓,因此需要程序员显示告知以辅助CPU或编译器更好地分支预测,减少分支预测失败带来的惩罚。


likely与unlikely的使用:

在条件分支的判断表达式中使用,likely(x)代表此分支更易被执行,unlikely(x)代表此分支不易被执行。

此处的unlikely(!disconnected)说明!disconnected条件很少成立,即大多数情况下disconnected都是true。

C++20中正式将likely和unlikely确定为关键字。


如侵删。
欢迎评论指正。




Godot Source Code Note 2的评论 (共 条)

分享到微博请遵守国家法律