I wrote a simple program which should run two threads, sort small array (~4096 Byte) and write into an output file. Input data contain in the one big file (~4Gb). Computer has 128MB memory. I found that running just empty main function use 14MB memory. If run std::thread with empty function application start to use ~8MB per thread. BUT if i make just one dynamic memory allocation program starts to use approximately 64Mb per thread. I don't understand what can spend so much memory. How can I control this size? And how allocate dynamic memory to minimize some system default allocation?
- System: Ubuntu 14.04.3
- Compiler: gcc 4.8.4
-
Compiler option:'-std=c++11 -O3 -pthread'
-
This is a code example
void dummy(void) { std::vector<unsigned int> g(1); int i = 0; while( i<500000000) { ++i; } } int main(void) { std::thread t1(&dummy); std::thread t2(&dummy); std::thread t3(&dummy); t1.join(); t2.join(); t3.join(); return 0; }
Aucun commentaire:
Enregistrer un commentaire