로딩 속도와 메모리에 대해 쓴글
컴퓨터라는 녀석은 용량이 큰 파일을 하나 복사할때 보다 용량이 작은 파일을 여러개 복사 할 때 더 느리다.(왜 그럴까 모른다면 생각해보자)
메모리 할당 역시 마찬가지다 각 캐릭터의 정보자체는 별로 용량이 되지 않고 심지어 마을에 있는 캐릭터 전부의 메모리 사용량이 별로 되지 않을 때도 있다. 하지만 결론적으로 느리다. 미리 로딩 되어 있는가 그렇지 않는가가 사용자에게 짜증을 불러 일으킨다. 물론 너무 미리 로딩하는 것도 문제가 된다. 이 시점과 처리 방법은 매번 다른 상황에서 구현 되는게 일반적이므로 여기서 말하는 것은 무의미 하겠다. 힌트를 준다면 CPU가 놀고 있을때 적절히 로딩하면 좋지 않을까 한다.변수 할당 시간 같은 , 아니 거의 대부분의 것들이 무시할정도로 미미한 시간동안 수행된다고 해도 그 양이 많아지면, 내가 데이터 한두개로 테스트 할때는 잘되지만 백개 천개 백만개 천만개에서 동작할때에는 그런 녀석들 조차 최적화가 필요해진다.
얼마전에 몇몇 알고리즘의 속도에 대한 비교를 해야 했었다. 종료 시간에서 시작 시간을 빼면 그동안의 작업 시간이 산출 되고 그것들을 수백번 수행해서 평균을 낸다. 만약 그 속에 알고리즘이 사용할 데이터를 로딩하는 일을 한다면 속도 비교에 대한 데이터는 신용 할 수 없는 데이터 가 되는 것이다.
또한 그 평가를 하는 프로그램이 수행된뒤 바로 계산되는 값은 쓸모가 없다. 윈도우가 처음 부팅 될때를 생각해보면 이유를 알것이다. 난 보통 앞 데이터 몇개를 버리던가 nop이라는 아무것도 하지말라는 명령어 등을 수행해서 좀 텀을 준다음 계산과 시간 체크를 시작한다.
대부분의 처음 시작하는 프로그래머들이 변수는 그냥 생성하면 될꺼라 생각하지만 엄연히 변수 생성(메모리 할당) 역시 시간이 걸리고 어떤경우 그 작업이 실패 하기도 한다.
개발은 점점 프로그래머에게 점점 꼼꼼함을 요구하고 있다. 잘 돌아가는 프로그램이 좋은 프로그램이 아니다. 이제 몇몇 분야를 빼고는 최적화된 코드 보다 유지보수 하기 쉽고 튼튼한 코드가 잘 짜여긴 코드가 좋은 코드로 여겨 지고 있다.
별 내용은 아니었지만 프로그래밍을 시작하는 사람들에게 도움이 되었으면 한다.2007년 2월 26일 월요일 오전 3시 9분