Oversized memory allocation by ACE library's thread (ACE_Task_Base) class
Posted on 2007-10-16
Hello, I'm using the ACE library for a multi threaded network application written in C++ for linux.
I'm using ACE for network layer, threads and semaphores.
Everything goes well, but we recently realized that the threads are allocating big blocks of memory.
When running pmap on our program, we see lines like
b75da000 10240K rwx-- [ anon ]
There is one for each thread, and this seems really oversized.
For more details, our threads are handled in a class derived from ACE_Task_Base. The 10 megs memory blocks are allocated only if we start the threads.
Any advice about why this memory is allocated, is it necessary, and if not, how to reduce or remove these allocations ? Can it be related to not using the ACE_Thread_Manager ?