making STL use " __malloc_alloc_template<0> "

J

jithoosin

Hi

I am using STL in my code. So after some time it appears as if the
code is leaking memory. I did a memory profiling using valgrind massif
to find out that most memory in my code is allocated using the 2
functions

1) std::__default_alloc_template<true, 0>::allocate(unsigned) (in
/usr/lib/libstdc++.so.5.0.3)
2) std::__default_alloc_template<true, 0>::_S_chunk_alloc(unsigned,
int&) (in /usr/lib/libstdc++.so.5.0.3)

When i googled i found a useful reference:
http://www-1.ibm.com/support/docvie...20&uid=swg21160634&loc=en_US&cs=UTF-8&lang=en

It asks me to use __malloc_alloc_template<0> in my code so that STL
"actualy frees" memory. So I have 2 questions .
1)Would this strategy be helpful ?
2) Is there any easy way to make my code use this template by any
options rather than changing the code as the link suggests ?

Thanks in advance.


Regards
Kiran Pradeep
 
K

Kai-Uwe Bux

jithoosin said:
Hi

I am using STL in my code. So after some time it appears as if the
code is leaking memory. I did a memory profiling using valgrind massif
to find out that most memory in my code is allocated using the 2
functions

1) std::__default_alloc_template<true, 0>::allocate(unsigned) (in
/usr/lib/libstdc++.so.5.0.3)
2) std::__default_alloc_template<true, 0>::_S_chunk_alloc(unsigned,
int&) (in /usr/lib/libstdc++.so.5.0.3)

When i googled i found a useful reference:
http://www-1.ibm.com/support/docvie...20&uid=swg21160634&loc=en_US&cs=UTF-8&lang=en

It asks me to use __malloc_alloc_template<0> in my code so that STL

"actualy frees" memory. So I have 2 questions .
1)Would this strategy be helpful ?

Who knows? Maybe you should ask in a forum for the particular STL
implementation you are using. Here, platform specific questions are
off-topic.
2) Is there any easy way to make my code use this template by any
options rather than changing the code as the link suggests ?

Again, who knows.

However, there maybe a more portable way to achieve what you want: all
standard containers do all their allocations by means of an allocator,
which defaults to std::allocator<>. You can provide your own allocator
instead.



Best

Kai-Uwe Bux
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,819
Latest member
masterdaster

Latest Threads

Top