Max*_*Max 5 c c++ algorithm performance profiling
通过callgrind运行我的应用程序显示,这一行使其他所有内容相形见绌大约10,000倍.我可能会围绕它重新设计,但它让我感到疑惑; 有没有更好的方法呢?
这就是我现在正在做的事情:
int i = 1;
while
(
(
(*(buffer++) == 0xffffffff && ++i) ||
(i = 1)
)
&&
i < desiredLength + 1
&&
buffer < bufferEnd
);
Run Code Online (Sandbox Code Playgroud)
它正在寻找32位无符号整数数组中第一块desiredLength 0xffffffff值的偏移量.
它比任何涉及内循环的实现都要快得多.但它仍然太慢了.
您标记了 c++,所以我假设您有可用的 STL 算法:
std::search_n(buffer, bufferEnd, desiredLength, 0xffffffff);
Run Code Online (Sandbox Code Playgroud)