클라이언트 프로그래머의 일기/N년차 클라이언트 프로그래머의 일기

GPT한테 최적화를 시켜보았다.

ckhyeok 2024. 10. 18. 16:42

개요는 이러하다.

 

우선 변수 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를 사용하면서 느낀 것은

우선 내가 생각한 대로 코드를 작성한 뒤에 보완 할 부분이 있는지 물어보는 용도로 사용하는 것 까지는 아주 유용해보인다.