Int값을 .ToString() 후 캐싱하여 사용하기

2025. 4. 1. 23:09·코드 및 공부/최적화

유니티 버전 - 2022.3.59f1

 

 

 

 

 

목차


  • .ToString()의 메모리 사용량
  • .ToString()을 캐싱하여 사용하기

 

 

 

 

 

.ToString()의 메모리 사용량


int형의 .ToString()은 내부에서 정수 값을 문자열로 변환하면서 새 문자열 인스턴스를 생성합니다, 이때 문자수에 따라 20~40 바이트 정도의 메모리 할당이 일어납니다, 단일 호출에서는 미미하지만 빈번하게 사용되어야한다면 캐싱하여 사용하는 것도 좋은 방법입니다

 

 

 

 

 

.ToString()을 캐싱하여 사용하기


아래 코드를 통해 int 값에 대하여 확장 메서드로 이용할 수 있습니다, 해당 int 값을 문자열로 변환한 결과를 캐싱된 값으로 얻을 수 있습니다, 하지만 캐싱된 값은 프로그램이 실행되는동안 회수되지 않으므로, 적절하게 관리해주어야 할 필요가 있습니

using System.Collections.Generic;


public static class IntToStringEx
{
    private static readonly Dictionary<int, string> _intToStringDic = new Dictionary<int, string>();


    /// <summary>
    /// int를 .ToString() 변환 후 캐싱하여 사용 가능하도록 하는 기능
    /// </summary>
    public static string IntToString(this int arg)
    {
        if (!_intToStringDic.TryGetValue(arg, out string value))
        {
            value = arg.ToString();

            _intToStringDic[arg] = value;
        }

        return value;
    }
}

'코드 및 공부 > 최적화' 카테고리의 다른 글

async메서드를 위한 AsyncEventManager  (0) 2025.04.15
딕셔너리의 GetValueOrDefault()  (0) 2025.03.27
ReferenceEquals()를 이용한 null 비교 수행  (0) 2025.03.25
CommandSceheduler를 이용한 메서드 순차 실행  (0) 2025.03.22
그래픽 옵션(Quality) 변경하기  (0) 2025.02.04
'코드 및 공부/최적화' 카테고리의 다른 글
  • async메서드를 위한 AsyncEventManager
  • 딕셔너리의 GetValueOrDefault()
  • ReferenceEquals()를 이용한 null 비교 수행
  • CommandSceheduler를 이용한 메서드 순차 실행
ekrxjvpvj0110
ekrxjvpvj0110
유니티 개발 관련 자료
  • ekrxjvpvj0110
    ekrxjvpvj0110의 유니티 개발
    ekrxjvpvj0110
    • 전체 글 (74)
      • 코드 및 공부 (73)
        • 이론 (4)
        • 데이터 관리 (11)
        • 입력 관리 (9)
        • 최적화 (10)
        • UI (3)
        • 통신 (0)
        • 카메라 (3)
        • 오디오 (3)
        • 물리 (3)
        • 씬 (6)
        • 기타 (21)
        • 분류없음 (0)
  • 인기 글

  • hELLO· Designed By정상우.v4.10.3
ekrxjvpvj0110
Int값을 .ToString() 후 캐싱하여 사용하기
상단으로

티스토리툴바