2009-03-31 10 views
0

방금 ​​응용 프로그램에있는 각 개체의 개체 수를 Allocation Profiling 번 수행했습니다. boost :: shared_ptr를 광범위하게 사용하고 있습니다.많은 수의 sp_counted_impl_p 개체

많은 수의 sp_counted_impl_p 개체가 할당되어 있는데, 각각 16 바이트를 차지합니다. shared_ptr 당 몇 개의 sp_counted_impl_p 개체가 필요합니까? 누군가 아이디어가 있습니까?

답변

2

구현에서 볼 수있는 내용은 shared_ptr 당 하나뿐입니다. 그러나 내부적으로 부스트에 사용되는 객체가 더 많아서이 계산 된 클래스를 직접 또는 shared_ptr 자체에서 사용할 수 있습니다. 또한 boost.serialization 프레임 워크를 사용하면이 클래스/메커니즘을 기반으로합니다. 어쨌든, "큰 숫자"는 몇 명이 거기에 있습니까?

+0

hmmm ... 이제 shared_ptr 당 하나만 있다고 생각하지만 많은 수의 개체를 수집 중입니다! 귀하의 답변에 감사드립니다. –

1

가리키는 개체 당 하나씩 shared_ptr이 있어야합니다. 그 중 더 많은 것이 있다면 shared_ptr을 올바르게 사용하지 않고 double-free 오류와 같은 문제를 간청하십시오.

+0

hmmm ... 이제 shared_ptr 당 하나만 있다고 생각하지만 많은 수의 개체를 수집 중입니다! 전에 valgrind를 실행했는데, 적어도 두 번의 자유 오류가 없다고 말했습니다. 그래도 고마워. –

+0

포인터보다 많은 개체를 가질 수 없습니다. – jpalecek

관련 문제