我有一个函数,命名为isLinked(),该函数检查我的对象是否链接到相同类型的其他对象。问题是,该函数经常在很短的时间内被调用。在处理信息的某个阶段,我说的是数百万次。您对我们如何优化它有任何想法吗?我们是否应该为每个对象使用专用的布尔值?还是会造成可能的不一致?我对代码优化不是很熟悉。请注意,我们有许多并行执行相同操作的对象。

因此,基本上可以归结为:

class MyObject() {
  private:
     MyObject* myLinkedObject;

 public:
     Bool isLinked(){
                return (myLinkedObject != NULL);
     }

};


然后,在其他循环的函数中,我们经常进行如下检查:

if(myFirstLinkedObject->isLinked){
   .....
}

最佳答案

瓶颈肯定在完全不同的代码位置。该函数太简单了,不能进行重大优化(您可以提示编译器使其内联,但我认为它不会显着提高性能)。

据我所知,问题在于您经常调用此函数。有什么理由吗?您最好查看优化调用此函数的代码的方法,而不是isLinked()本身。

10-07 19:29
查看更多