할당할 때 shared_ptr의 deleter 부분까지 포함해서(make_shared처럼) 하면 쉽게될 거 같기도 하고
allocate_shared에 pool 붙이면 쉽게 될 거 같기도 하고 찾아봐야겠네
댓글 2
걍 allocator concept에 맞게 pool allocator 만들고 allocate_shared 인자로 그 allocator 넣어주믄 됨
kukyakya(143.248)2016-01-06 13:58
근데 thread safe한 allocator 만들기도 쉽지가 않고 만든다 해도 성능이 생각만큼 안나오더라. boost pool_allocator도 멀티쓰레드에서 쓰니까 락 거느라 성능이 더 떨어짐. 그냥 std::allocator 쓰고 tcmalloc 같은걸 붙이는게 더 나은듯
걍 allocator concept에 맞게 pool allocator 만들고 allocate_shared 인자로 그 allocator 넣어주믄 됨
근데 thread safe한 allocator 만들기도 쉽지가 않고 만든다 해도 성능이 생각만큼 안나오더라. boost pool_allocator도 멀티쓰레드에서 쓰니까 락 거느라 성능이 더 떨어짐. 그냥 std::allocator 쓰고 tcmalloc 같은걸 붙이는게 더 나은듯