여기코드에는 없는데, 풀을 관리하는 동적배열에서
push_back을 할때 풀의 임시객체의 주소를 넘겨줫음.
으으, Release모드로 디버깅하니까 눈에보임
근데 Debug모드로 디버깅하니까 눈에 안보임;; 그냥 멀쩡하다가 줄내려가면 저래 ㅠㅠ
여기코드에는 없는데, 풀을 관리하는 동적배열에서
push_back을 할때 풀의 임시객체의 주소를 넘겨줫음.
으으, Release모드로 디버깅하니까 눈에보임
근데 Debug모드로 디버깅하니까 눈에 안보임;; 그냥 멀쩡하다가 줄내려가면 저래 ㅠㅠ
Debug 모드에서 0xcccccccc로 채워져 있어서 오류인걸 알 수 있다가 Release 모드에서는 에러가 안잡히는게 아닐까.. 내 경험상으론 그런 느낌이 드는데
Debug에서 안잡히는게 Release에서 잡히다니 이상하네
릴리즈에서는 할당할때부터 에러뜨더라궁ㅜㅜ
초기화 문제일걸, 재수없는 경우는 debug에서는 생성자에서 0초기화 안하는대 릴리즈에서 0초기화 해서버려서 문제가 생기는 경우도 있다
메모리풀 하나본데 객체 상속형식으로 new delete 하는게 빠름 저런방식 비추
우물개구리 // 임의의사이즈에 대해 반응하는걸 만들어보려고 햏다가ㅡㅜㅜ 전역 operator new delete롴ㅋㅋ
상속 형식 전역 둘다 지원하는게 기본이긴 한데 전역형식은 그냥 기본제공 할당자 쓰는게 빨라
vs2013기준으로 속도가 2008과 비교도 안되게 빨라졌고 무엇보다 무서운게 멀티스레드 에서 할당/삭제 할때 이론적으로 스레드가 3배로 늘어나면 속도도 3배조금 넘게 느려져야 하잖아? 그런데 스레드1개에서 100만개 할당삭제 하는거보다 스레드2개에서 200만개 할당삭제 하는게 더 빨라짐 소름;;;
반납할때 바로 풀을 바로 찾으려면 풀을 가르키는 포인터를 [헤더][사용자요청메모리] 이런식으로 해서 헤더 에 담아. 그리고 헤더부분 읽어서 바로 반납
그리고 풀의 단위 크기를 4 8 16 이런식으로 배수로 자르는게 좋음 안그럼 안그럼 13짜리풀 14짜리풀 난리남...
말을 잘못한게 있는데 그런데 스레드1개에서 100만개 할당삭제 하는거보다 스레드2개에서 200만개 할당삭제 하는게 더 빠라진다는게 아니라 1스레드100만개가 속도 1이라면 2스레드200만개(스레드당100만)이 속도1.4 뭐 이런식
vs2013으로 갈아타야할듯ㅜㅜ
2013 공짜