개요는 이러하다.
우선 변수 string _desc와 int ReSizeValue가 존재하며
우리는 이 _desc의 길이가 ReSizeValue 값보다 크면
_desc의 중간 값을 기준으로 space인 char ' ' 값을 찾은 다음에
' ' 값을 \n 값으로 변경시키는 작업을 진행한다.
내가 작성한 코드는 다음과 같다.
static string Function1(string _desc, int ReSizeValue)
{
if (_desc.Length > ReSizeValue)
{
int count = _desc.Length / 2;
for (int i = count; i < _desc.Length; i++)
{
if (_desc[i] == ' ')
{
_desc = _desc.Replace("' '", "\n");
break;
}
}
}
return _desc;
}
이 함수를 main에서 10만번 돌렸을 때 32ms가 나왔으며,
이후 GPT에게 해당 코드를 상세하게 질문하면서 최적화를 요청했더니 아래와 같은 코드로 변경해주었다.
static string Function2(string _desc, int ReSizeValue)
{
if (_desc.Length > ReSizeValue)
{
int start = _desc.Length / 2;
int space = _desc.IndexOf(' ', start, 1);
if (space != -1)
{
_desc = _desc.Remove(space, 1).Insert(space, "\n");
}
}
return _desc;
}
이 함수를 main에서 동일하게 10만번 돌렸을 때 4ms가 나왔다.
즉 8배 빨라진 것이다.
이후 몇번의 질문을 더 하면서 Linq도 사용해보고 StringBuilder도 사용해보았으나
워낙 간단한 함수이기에 눈에 띄는 차이는 보이지 않았다.
GPT를 사용하면서 느낀 것은
우선 내가 생각한 대로 코드를 작성한 뒤에 보완 할 부분이 있는지 물어보는 용도로 사용하는 것 까지는 아주 유용해보인다.
'클라이언트 프로그래머의 일기 > N년차 클라이언트 프로그래머의 일기' 카테고리의 다른 글
유니티 프로퍼티에 로그 심어서 상태 변화 체크하기(Unity Property Log) (0) | 2023.08.23 |
---|---|
유니티 에러가 함수의 끝을 가리키는 경우 해결 방법. (0) | 2023.01.17 |
유니티 빌드 실패 시 FATAL EXCEPTION: UnityMain 해결 방법 (0) | 2022.12.20 |
CMD로 Tortoise SVN 기능 사용하기(update, commit, log) (0) | 2022.01.06 |
Unity Debug Log의 단점 보완하기 (0) | 2021.12.03 |