핸들 누수 지점 찾아내기
핸들 누수 파악하자 작업 관리자나 Process Explorer에는 열(Column)을 확장하는 옵션이 있다. 보통 메모리, 가상 메모리, 핸들, 스레드 정도를 추가하고, 경우에 따라 GDI 개체 수 같은 항목도 선택한다. 프로그램 시작할 때의…
핸들 누수 파악하자 작업 관리자나 Process Explorer에는 열(Column)을 확장하는 옵션이 있다. 보통 메모리, 가상 메모리, 핸들, 스레드 정도를 추가하고, 경우에 따라 GDI 개체 수 같은 항목도 선택한다. 프로그램 시작할 때의…
이틀 정도 성능 측정에 관한 자료를 읽고 실제로 테스트를 수행해봤는데, 그 결과를 정리해본다. Visual Studio 2005 또는 2008 팀 시스템엔 프로필러라 칭하는 성능 측정 도구가 포함되어 있다. 비주얼 스튜디오 상단에…
미리 컴파일된 헤더를 안 쓰게 구성되어 있는 Visual Studio 프로젝트를 손보고 싶을 때가 있다. 이렇게 하면 된다(영문판 기준). 프로젝트 속성(Properties)메뉴에 들어간다. C++/Precompiled Headers에서 Use Precompiled Header (/Yu)를 선택한다. Visual Studio의…
정말 대단한 버그다! 회사 동료 분이 메모리 누수 현상이 있다길래 둘이 같이 달려들어 문제를 찾아봤는데, 천신만고 끝에 원인을 알아냈다. wcout.imbue( locale("korean") ); wostringstream os; for(int i=0; i<2; i++) { os…
시간 측정하는 방법에 대해 조사하다가 재미있는 팁을 알게 됐다. 코드를 짜다가 잘 생각 안 나는 부분이 있거나 확정 안 된 요소와 마주치면 일단 \todo 주석(doxygen 기준)을 남기고 넘어간다. 문제는 주석을…
2007.09.27 소스 코드와 테스트 결과 모두 오류가 있어서 글을 고쳐 썼습니다. 죄송합니다. 거의 모든 문자열을 TCHAR로 선언해서 쓴다. _UNICODE가 선언되어 있으니 사실상 wchar_t 타입인 셈이다. 한데 TCHAR*이나 std::wstring에 담긴 한글…
게임 서버의 로직을 검사하고 부하를 걸어 성능 테스트를 할 프로그램이 필요하다. 이러한 애플리케이션에는 당연히 수행 시간을 측정하는 기능이 들어가야 해서 관련 자료를 훑어보고 정리해봤다. 프로그램의 시간(성능)측정 이 글에는 시간을 측정하는…
로컬 컴퓨터에서 개발 중인 소프트웨어를 테스트하려고 하니, ODBC 설정을 자동으로 해줘야 해서 작성한 VB 스크립트다. 사실 거의 다 Understanding ODBC DSN creation에서 가져온 코드이고, 데이터 소스 이름과 데이터베이스 이름을 명령줄…
C# 쓰다가 C++ 코딩을 하다 보면 불편한 점이 한두 가지가 아닌데, 그 중 하나가 Chain Constructors 패턴을 적용하기 어렵다는 점이다. C#에선 간단하게 Chain Constructors 패턴을 구현해 코드 중복을 최소로 줄일…
원문 출처. 고수들이 절대 가르쳐 주지 않는 C/C++ 프로그래밍 팁 #4 - C/C++ 로깅 Facility 매크로 함수 정의에서 인자 x 에 대해 #x 라고 쓰면 x 가 문자열 리터럴로 바뀝니다.…