본문 바로가기
개발/게임) 개발관련

게임개발) 메모이제이션(Memoization)

by 테샤르 2019. 10. 17.

메모이제이션(Memoization)


 컴퓨터 프로그램이 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로써 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하는 기술이다. 동적 계획법의 핵심이 되는 기술이다.

 

예시로 애니메이션을 처리하는 로직이다. 처음 시작할 때m_strAnimationClipName 에 데이터를 한번 세팅한다.

그 이후에는 해당 로직을 처리하지 않고 값을 가지고 와서 처리를 한다.

단순하게 이런 식으로 이전에 계산한 값을 메모리에 저장해서 반복적으로 수행되는 로직의 실행 속도를 빠르게 하는 것을 말한다.

 if (null != this.m_Animation)
 {
   if (null == this.m_strAnimationClipName)
   {
    this.m_strAnimationClipName = Utill.Instance.GetAnimationClipName(this.m_Animation);
   }
   
   if(this.m_strAnimationClipName.Length > index){
     AnimationClip clip = this.m_Animation.GetClip(this.m_strAnimationClipName[index]);
     if (null != clip)
     {
       animFlag = true;
       this.m_fAnimationDurationSec = clip.length;
       this.m_Animation.Play(clip.name);
     }
   }
 }

 

 

반응형

댓글