私のアプリを callgrind で実行すると、この行が他のすべてのものを約 10,000 倍小さくすることが明らかになりました。おそらくそれを中心に再設計するつもりですが、疑問に思いました。それを行うより良い方法はありますか?
現時点で私がやっていることは次のとおりです。
int i = 1;
while
(
(
(*(buffer++) == 0xffffffff && ++i) ||
(i = 1)
)
&&
i < desiredLength + 1
&&
buffer < bufferEnd
);
32 ビット符号なし int 配列で、desiredLength 0xffffffff 値の最初のチャンクのオフセットを探しています。
これは、私が思いついた内部ループを含むどの実装よりも大幅に高速です。しかし、それでも遅すぎる。