유니티 버전 - 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;
}
}
'코드 및 공부 > 최적화' 카테고리의 다른 글
딕셔너리의 GetValueOrDefault() (0) | 2025.03.27 |
---|---|
ReferenceEquals()를 이용한 null 비교 수행 (0) | 2025.03.25 |
CommandSceheduler를 이용한 메서드 순차 실행 (0) | 2025.03.22 |
그래픽 옵션(Quality) 변경하기 (0) | 2025.02.04 |
Profiler와 Stopwatch를 이용한 코드 비교 및 최적화 (1) | 2025.01.16 |