Um den default Stack Size wert zu bekommen habe ich ein kleines programm geschrieben:
Code: Alles auswählen
#include <pthread.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
size_t stacksize;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_getstacksize (&attr, &stacksize);
printf("Default stack size = %d\n", stacksize);
}
Ich konnte zudem feststellen das durch ein system() Aufruf speicher verloren ging. Keine Ahnung wieso das passiert auf dem Entwicklungsrechner konnte ich dieses Phänomen nicht bestätigen.. system() ausgetauscht mit QProcess und schon war dieses Problem auch behoben.QThread::QThread ( unsigned int stackSize = 0 )
Constructs a new thread. The thread does not begin executing until start() is called.
If stackSize is greater than zero, the maximum stack size is set to stackSize bytes, otherwise the maximum stack size is automatically determined by the operating system.
Warning: Most operating systems place minimum and maximum limits on thread stack sizes. The thread will fail to start if the stack size is outside these limits.
Meine Applikation benötigt jetzt lediglich 8 MB Arbeitsspeicher und ist recht performant. Mit boost etc... hätte ich wahrscheinlich ein ähnlich großen Arbeitsspeicherverbauch da wie gesagt das meiste durch pthread draufgeht...
Und DANKE für die vielen hilfreichen Antworten
Gruß Alex