메모이제이션(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);
}
}
}
★☆☆☆☆
반응형
'개발 > 게임) 개발관련' 카테고리의 다른 글
게임개발) 프레임드랍(frame drop) (0) | 2019.11.04 |
---|---|
게임개발) 코드 리뷰 (2) | 2019.10.22 |
게임개발) 레거시 코드(Legacy Code) (2) | 2019.10.14 |
게임개발) 사이드 이펙트 (Side Effect) (0) | 2019.10.14 |
게임개발) 스파게티 코드 (2) | 2019.10.12 |
댓글