Unity3D는 참으로 여러가지 오픈소스와 모듈들이 동원된 소프트웨어입니다.

그래서 외부 라이브러리 의존도도 높지요.


대표적으로 안드로이드용으로 빌드할 때 PVRTexTool.exe라는 PowerVR 그래픽칩 전용 텍스처 압축기를 사용해서 텍스처 파일 하나하나 압축을 수행합니다. 이 프로그램은 다음과 같은 속성을 가지고 있지요.


PVRTexTool.exe 속성


겪을 수 있는 문제는, 이 프로세스가 돌 때 CPU 99%가까이, 램 1.5G가까이 소모한다는 것입니다. 고작 30메가 정도의 png 텍스처도 그렇게 되지요. 30메가 압축하는데 1.5G정도 램을 쓴다면 벌써 뭔가 비정상적이라는 것이겠지요?


프로그래밍 경험이 있으신 분들은 겪었겠지만, 보통 이런 경우 관리자 모드로 해결되는 이유는 파일 쓰기 권한 때문으로, 실행하다가 내부적으로 쓰기 금지 오류가 날 경우 계속 쓰기 시도를 하면서 이것을 위한 메모리(Stream)는 비워주지 못해서 끝없이 증가하다가 결국엔 죽는 경우입니다. 제가 겪은 문제는 확언은 못하지만 이러한 이유로 추측됩니다.


소프트웨어를 제작하는 소프트웨어는 대부분의 경우 관리자 모드로 실행하는 것을 권장하면서도 권장하지 않는데요(어쩌라는 소리야!). 권장하는 이유는 위에 언급한 것과 같은 경우가 비일비재하기 때문이고, 권장하지 않는 이유는 사용자(고갱님들? ㅋㅋ)들 또한 관리자 모드로 실행해야 동작하는 경우가 발생하기 때문입니다.


보통은 관리자모드로 개발했다가 테스트할 때는 관리자모드로 실행하지 않는 방법을 사용합니다.

Posted by ------
,