빌드 속도를 향상시키려는 피나는 노력
그 동안 빌드하는 데 시간이 오래 걸려서 여러 번 손을 봤지만, 근본적인 문제는 건드리지 않아서 그리 효과적인 조치를 취했다고는 할 수 없었다. 빌드 서버를 도입하기 전에 각자 애플리케이션을 하나씩 맡아서…
그 동안 빌드하는 데 시간이 오래 걸려서 여러 번 손을 봤지만, 근본적인 문제는 건드리지 않아서 그리 효과적인 조치를 취했다고는 할 수 없었다. 빌드 서버를 도입하기 전에 각자 애플리케이션을 하나씩 맡아서…
삽질 보통 땐 Windows XP x86에서 개발한다. 하지만 실제 서비스는 Windows 2003 Server x64에서 운영될 예정이다. 그러니 당연히 테스트용으로 지급된 서버가 있다. 문제는 64비트 운영체제가 조금 까탈스럽다는 것이다. 예를 들어,…
Templatized C++ Command Line Parser 명령창 인자(Commandlien arguments)를 파싱할 때 쓰는 라이브러리다. 장점은 절차적으로 접근하기 쉬운 파싱을 객체지향적으로 접근할 수 있게 잘 포장해놨다는 점과 윈도우, 리눅스 상관 없이 잘 작동한다는…
핸들 누수 파악하자 작업 관리자나 Process Explorer에는 열(Column)을 확장하는 옵션이 있다. 보통 메모리, 가상 메모리, 핸들, 스레드 정도를 추가하고, 경우에 따라 GDI 개체 수 같은 항목도 선택한다. 프로그램 시작할 때의…
이틀 정도 성능 측정에 관한 자료를 읽고 실제로 테스트를 수행해봤는데, 그 결과를 정리해본다. Visual Studio 2005 또는 2008 팀 시스템엔 프로필러라 칭하는 성능 측정 도구가 포함되어 있다. 비주얼 스튜디오 상단에…
미리 컴파일된 헤더를 안 쓰게 구성되어 있는 Visual Studio 프로젝트를 손보고 싶을 때가 있다. 이렇게 하면 된다(영문판 기준). 프로젝트 속성(Properties)메뉴에 들어간다. C++/Precompiled Headers에서 Use Precompiled Header (/Yu)를 선택한다. Visual Studio의…
혹시 쓸 일이 있을지도 모르니 메모해놓자. 출처는 MSDN 포럼이다. @echo off msbuild Helper.csproj /t:Rebuild /p:Configuration=Debug set BUILD_STATUS=%ERRORLEVEL% if %BUILD_STATUS%==0 echo Build success if not %BUILD_STATUS%==0 echo Build failed
지난 편에서는 고통과 좌절을 경험했다. 머리를 아무리 싸매도 해결책이 안 떠올라서 좌절하던 중에 다른 분과 이야기를 나누다가 멋진 해법을 알게 됐다. 요컨대 Build만 하고 Rebuild는 하지 않는 게 가장 간단하고…
프로젝트 규모가 커질수록 빌드 시간도 길어진다. 빌드 시간이 길어지면 피드백도 늦어진다. 퇴근 시간 다 돼서 소스 코드를 커밋해놓고 빌드가 끝나길 기다린다. Rebuild하느라 5분을 기다렸는데, 빨간불이 들어온다. 새로운 소스 코드 파일을…
MSBuild 도입하기에서 MSBuildTasks를 살짝 소개한 적이 있다. 글을 쓰고 나서 프로젝트용 빌드 스크립트에 도입하려고 했다가 삽질 끝에 포기했었다. 어차피 새 기능을 도입하려는 게 아니라, 기존에 구현해 놓은 기능을 좀더 세련되게…