메모리 누수를 막기 위해서 많은 대책이 나오고 그중 대표적인 RAII 방식을 쓴다. 이 방식이 최고인것은 부인 할수 없는 사실이지만, .. RAII 방식을 쓰지 않는 것도 있다. 여러모로 메모리 누수가 발생 되는 지점을 발견할수 있다면, 정말 좋을 것이다. 이런 시점에 훈이형 블로그에 갔다가 좋은 녀석을 발견했다. ㅋㅋ 써본 사람만이 이 느낌을 안다. ㅋㅋㅋㅋ #ifndef _MEMORYLEAK_H_ #define _MEMORYLEAK_H_ #ifdef _DEBUG #define _CRTDBG_MAP_ALLOC #include #define new new(_NORMAL_BLOCK, __FILE__, __LINE__) static class MemoryMng { public: MemoryMng() { _C..
분류 전체보기 검색 결과
#define 을 이용해 손쉽게 찍는 방법이다. 길게 말하는것 보다 한줄의 코드가 더 마음에 와닫듯이 코드를 보여 준다.파악하고 사용 하면 요기나게 쓸것 같다. http://msdn.microsoft.com/en-us/library/ms177415(VS.80).aspx 소스 발취 // variadic_macros.cpp #include #define EMPTY #define CHECK1(x, ...) if (!(x)) { printf(__VA_ARGS__); } #define CHECK2(x, ...) if ((x)) { printf(__VA_ARGS__); } #define CHECK3(...) { printf(__VA_ARGS__); } #define MACRO(s, ...) printf(s, __V..
babo_ptr은 내가 실험삼아 만드는 스마트 포인터 이다. 메모리 릭 테스트도 다 끝냈다. 이 상태에서 .. 두 스마트 포인터의 비교... 우선 shared_ptr을 조금 밖에 분석을 못했는데, 1. 쓰레드 동기화 기법도 들어갔다. 2. shared_ptr 8바이트, count 용 8바이트 3. 기본적인 예외처리 되어 있음 babo_ptr 은.. 1. 쓰레드 동기화를 뺏다. 2. babo_ptr은 8바이트, 중 count 용 4바이트 를 소모 한다. 3. 예외처리 안되어 있음;; 이렇게 만들었다. .. 생성 시간 비교에선 babo_ptr이 약간 빠르다. 이건 당연할듯 4바이트 적게 생성하니까.. 문제는 .. 소멸할 때, babo_ptr은 약 10초라면 shared_ptr은 5초이다. 도저히 이해가 가지..
컨테이너란? 무엇인가를 담을 수 있는 공간 으로 봐도 될듯 싶다. 왜 적재적소에 사용 해야 하나? 컨테이너마다 적재하는 방법에 차이를 두고 있기 때문이다. 컨테이너는 어떤 종류가 있나? 여러것들이 있지만 표준 STL만 다룬다루도록 하고, 크게 시퀸스(sequence) 컨테이너( vector, string, deque, list ) 와 연관(associative) 컨테이너( set, multiset, map, multimap )로 나눌수가 있다. 이 책에선 어떨때 어떤 컨테이너를 선택하는지 질문 형식으로 유도 하고 있다. 그 질문을 적어 본다. 1. 컨테이너의 아무 위치에 요소를 삽입할 수 있어야 하나? 맞다면 시퀸스 컨테이너 중에서 선택해야 한다. 2. 컨테이너 내의 요소들의 순서 결정에 직접 관여하고 ..
# 정리가 끝날때 마다 링크를 한개씩 추가 시킨다. 책 : Effective STL 저자 : 스캇 마이어스(Scott Meyers) 옮김 : 곽용재(http://www.kwak101.pe.kr/) Chapter 1 효과적인 컨테이너(Container) 요리법 항목 1 : 적재적소에 알맞은 컨테이너를 사용하자 항목 2 : "컨테이너에 독립적인(container-independent) 코드"라는 환상을 조심하자 항목 3 : 복사(Copy)는 컨테이너 안의 객체에 맞게 비용은 최소화하며, 동작은 정확하게 하자 항목 4 : size()의 결과를 0과 비교할 생각이라면 차라리 empty를 호출하자 항목 5 : 단일 요소를 단위로 동작하는 멤버 함수보다 요소의 범위를 단위로 동작하는 멤버 함수가 더 낫다 항목 6 ..
어디서 부터 정리를 해야 할지 모르겠다~ 중구남방식으로 정리를 하자면 1. 윈속에는 블로킹과 넌블로킹 두가지 소켓 모드가 있다. 2. Windows 플랫폼은 기본적으로 블록킹과 넌블록킹 모드의 소켓을 지원하지만, 지원되는 기술은 Windows NT 이하에선 .. IOCP 를 사용 할수 없다. 3. 블록킹 모드란, 윈속 API 호출이 되는 얼마간의 시간동안 블록 되는것을 뜻한다. 4. 블로킹 모드와 넌블록킹 모두에는 각기 장단점이 있다. 바로 데이터 송수신하는 순서를 관리 안하느냐와 관리하는냐이다. 5. 서버는 넌블로킹 모드로 개발을 해야 하는데, 윈속에선 가장 쓰기 편하고, 가장 성능이 좋은것이 IOCP 이다. 6. Completion Port 에 소켓을 지정하고 나면 소켓 핸들에 대하여 I/O 요청 완..
최근댓글