私たちの描画コードのこの奇妙な小さな最適化で何が起こっているのか、誰か説明してもらえないだろうか。コードの最初の小さなビットを 2 番目のコードに置き換え、速度が大幅に向上しました (ストップウォッチ クラスを使用して 4400 ティック -> 15 ティック)。
// Add all the visible sprites to the list
m_renderOrder.Clear();
foreach (CSpriteInternalData sprite in m_InternalData)
{
if (!sprite.m_bRender) continue;
m_renderOrder.Add(sprite);
}
交換された...
// Add all the visible sprites to the list
m_renderOrder.Clear();
renderOrderCount = 0;
for (int i = 0; i < m_numSprites; i++ )
{
if (m_InternalData[i].m_bRender)
m_renderOrder[renderOrderCount++] = m_InternalData[i];
}
速度が大幅に向上したため、私は最も単純な小さな変更のように見えます。誰でも助けることができますか?