Unity AR 메모리 누수 현상 잡기

Minseung Kim·2023년 10월 28일
0

Unity-AR

목록 보기
5/8


현재 Unity를 이용하여 만든 어플의 메모리 사용량과 배터리 사용량을 확인할 필요가 있었다. 어플을 실행하고 Xcode의

부분을 클릭하니 원했던 정보를 확인할 수 있었다.

확인하니 맨 위의 사진과 같이 memory가 끝도없이 상승하는 메모리 누수현상을 발견하였다. 어플을 실행했을 때 시간이 지난 후 튕기는 현상이 발생했었는데 아마 메모리가 계속 증가하다 한계치를 넘었을 때 튕기는 현상이 발생한 듯 하다. 이유를 곰곰이 생각하니
Unity AR camera 화면 정보 일부분을 추출하기 에서 언급했던 튕기는 현상이 생각이 났고 코드를 돌아보니

  private Texture2D CaptureImage()
   {
       int width = Screen.width;
       int height = Screen.height / 3;
       Texture2D Texture = new Texture2D(width, height, TextureFormat.RGB24, false);
       Texture.ReadPixels(new UnityEngine.Rect(0, 2 * height, width, height), 0, 0);
       Texture.Apply();
       return Texture;
   }
...?! 코드를 함수들로 변경하면서 이전에 말했던 update 부분에
Texture2D Texture = new Texture2D(width, height, TextureFormat.RGB24, false);

코드를 넣어서 생성한 texture를 이용하는 것이 아니라 지속적으로 생성하여 메모리 누수 현상이 발생했던 것이다...
이 코드를

 private Texture2D CaptureImage()
    {

        Texture2D Texture = tex;
        int width = Screen.width;
        int height = Screen.height / 3;

        Texture.ReadPixels(new UnityEngine.Rect(0, 2 * height, width, height), 0, 0);
        Texture.Apply();
        return Texture;
    }

이렇게 바꾸니

문제 해결.... 그래도 배운것이 있다면 정신을 잘 차리고 코드를 짜자... To Be Continued...
profile
꾸준히, 열심히, 즐겁게

0개의 댓글