아주 1년에 한번꼴로 STL 로 pool 을 구현해놓은 푱신삽질을 구경하려니 짜증이 확 나네.
그것도 정초부터 보니까 아오 정말 이런 푱신들은 어떻게 태어났는지 그 애미년 자궁을 들어내서 분석하고 싶어져.
도데체 STL 써서 pool 구현을 왜 하냐? 그냥 malloc 쓰지 씨발.
STL 노드는 어디 하늘에서 떨어진다고 믿나?
글타고 Allocator 를 직접 따로 만들어서 붙여봤자 그 Allocator 는 또 어디서 할당받게?
결국 malloc 내지 별도의 Heap 에서 HeapAlloc 할텐데...
그럴바엔 차라리 그 Heap 에서 직접 블럭을 할당하고 말지 뭐하러 쓸데 없이 pool 흉내를 내서 속도를 더 떨궈? 무슨 푱신이야?
왜 이런 푱신이 만들어지는지 그 이유를 구글신한테 문의했더니...
http://gpgstudy.com/forum/viewtopic.php?p=77444&sid=d943cb6a191772bb04fe1f1fff57b412
이런 푱신들 덕택이었구만 아 웃겨ㅋㅋㅋ
메모리 할당자를 따로 만들면 된답니다 ㅋㅋㅋㅋ 정말 저런 병신들이 있었어 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
저 푱신들은 머리가 간질거리면 왼손바닥을 긁어서 머리에 대겠지? ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
마지막 푱신이 말하길
\"한꺼번에 메모리를 잡아놓고 필요할 때 꺼내쓴다\"
이게 pool 의 구현 의도랍니다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
아 무슨 꼭 STL을 써야만 한다는 강박관념이라도 있나봐?
씨발 세상엔 왤케 푱신이 많은지 모르겠어 짜증나
사실 풀링이란 게 그 뜻이 맞긴 한데 손바닥 긁어서 머리에 댄다는 비유는 존나 적절한 듯ㅋㅋ..
내가 아는 pool 의 구현 의도는... 메모리 블럭이 대량으로 빈번하게 할당 해제되는 상황에서 heap 이 가진 오버헤드를 제거하는 것이라고 알고 있어서 ㅋㅋㅋ 그래서 pool 은 애초에 pool 이 다룰 객체들 중 최대크기 단위로 잡거든. 한꺼번에 메모리를 잡아서 필요할 때 꺼내 쓰는건 heap 의 개념이지.
앗쌀횽 진짜 궁금해서 묻는건데, 저 방식으로 풀 만드는게 뭐가 나쁜건데?? 우리팀같은 경우에도 한꺼번에 타입별 메모리 잡아서 풀링해놓고 사용후에 반납하고 재사용하는 방식으로 사용중이거든. 다람쥐 횽아가 말하는 것 처럼 특정 타입의 객체만 풀링하려면 STL 써서 프로그램 진입부에 메모리 할당하는게, 어떤면에서 잘못된거야?
좀더 정확히 말하면 메모리단편화에 따른 성능저하를 막기위해서 풀을사용하지. 메모리가 무한정이라면, 빈번하게 할당 해제 되어도 별로 부하가 크지 않거든
저글에서 말하는 \"한꺼번에..\"라는 표현도 그냥 메모리부하표현을 뺀 약식표현이 아닐까? 아님말구~
Eins // 프로그램 진입부에서 메모리 할당하는데 뭐가 문제냐고? 그 STL 로 된 pool 에 블럭을 반납할 때 new 연산자가 호출되거든.
비타횽 말처럼 메모리단편화에 따른 성능저하를 방지하기 위해 풀을 쓰는 거라면, 같은 타입에 대해 미리 큰 메모리를 잡고 해당 타입의 객체들만 할당해주는 풀은 STL을 써도 아무런 문제가 될 것 없다고 보는데. 제프리 리처 아저씨도 그렇게 해도 된다고 했고 ㅎ
물론 할당을 위한 노드 추출시에도 new 가 호출되지. 이 new/delete 는 오버라이드 안할 경우 malloc() 를 호출하고, malloc() 는 HeapAlloc( GetProcessHeap(), ) 을 호출하는 물건임.
Eins // STL이 메모리 단편화를 시키니까 문제지.
Eins // STL 에 대한 노드 삽입/추출이 어떻게 이루어지는지 꼭 알 필요는 없다고 봐. 대신 그걸 모르는 사람은 그냥 pool 같은걸 구현하는 푱신짓을 해선 안되는거임. 그냥 HeapAlloc() 쓰는게 최선이거든.
풀을 쓰는건 여름 휴가때 야근 안하고 풀장으로 놀러가고 싶다는 잠재의식의 발현임 [m]
제프리 리처가 STL 로 풀 만들어 써도 괜챃다고 했음? 그 푱신 애미가 썅년인가보네.
앗쌀/ 제프리횽아가 STL로 만들어도 된다고 한건아니고 ㅋㅋㅋ 그님도 HeapAlloc 씀 ㅋㅋ 범용 할당자가 아니라 특정 타입에 대한(동일한 사이즈를 할당/해제)하는 할당자를 만들거면 크게 메모리 잡고 반납해도 단편화 안생긴다 뭐 이런말 ㅋㅋ