본문 바로가기

C#

[메모] 이중 반복문이 느리다.

                if (true)
                {
                    int c = 0 , d = 0;
                    int x = 0, y = 0;

                    for (int i = 0; i < this.depthPixels.Length; i++)
                    {
                        if (i % depthWidth == 0 && i > 0)
                        {
                            ++y;
                            x = 0;
                        }

                        if (this.depthPixels[i].PlayerIndex > 0)
                        {
                            maskedImage.Data[y, x, 0] = 30;
                            maskedImage.Data[y, x, 1] = 250;
                            maskedImage.Data[y, x, 2] = 30;
                        }

                        ++x;
                    }

                    #region
                    // 아래와 같이 x y 이중 반복문은 위의 알고리즘 보다 훨씬 느리다.
                    //for (int x = 0; x < maskedImage.Height; x++)
                    //{
                    //    for (int y = 0; y < maskedImage.Width; y++)
                    //    {
                    //        if(this.depthPixels[c].PlayerIndex > 0)
                    //        {
                    //            maskedImage.Data[x, y, 0] = 30;
                    //            maskedImage.Data[x, y, 1] = 250;
                    //            maskedImage.Data[x, y, 2] = 30;

                    //            ++d;
                    //        }
                    //        ++c;
                    //    }
                    //}
                    #endregion
                }