【问题标题】:Is checking for a BOOL's value more efficient than just updating it? [duplicate]检查 BOOL 的值是否比更新它更有效? [复制]
【发布时间】:2015-07-03 07:03:10
【问题描述】:

我有一个效率问题。

假设我有一个经常设置为 YES 的布尔值(当玩家在地面上时)。

只检查 BOOL 的值会更有效吗,即

if (!character.isOnGround) character.isOnGround = YES;

或者将值设置为YES会更有效,即

character.isOnGround = YES

基本上,问题是这样的。 if 语句比赋值更快吗?

【问题讨论】:

  • 没有。只需设置值。

标签: c++ objective-c c performance


【解决方案1】:
if (!character.isOnGround) character.isOnGround = YES;

需要:

  • 读取变量
  • 条件检查
  • 分支
  • 变量的写入

虽然优化编译器可能只是崩溃到最后一条语句。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-13
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多