[Gelößt]Verringern des Arbeitsspeicherverbrauchs

Alles rund um die Programmierung mit Qt
Alex66955
Beiträge: 56
Registriert: 23. September 2009 14:48

Re: Verringern des Arbeitsspeicherverbrauchs

Beitrag von Alex66955 »

ja also bin auch zu einer Lösung gekommen..

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);
}
Und um die Stacksize größe zu ändern, ganz einfach die größe im Konstruktor von QThread angeben
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.
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.


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
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Re: Verringern des Arbeitsspeicherverbrauchs

Beitrag von solarix »

pfid hat geschrieben: Ob QT dafür ne API anbietet, weiß ich jetzt nicht.
Ja.. die API für die QThreads ist derart riesig und unübersichtlich, dass man das leicht übersehen kann:

Qt3:
http://doc.qt.nokia.com/3.3/qthread.html#QThread

Qt4:
http://doc.qt.nokia.com/latest/qthread. ... tStackSize

hth..

[EDIT]
Hast nun das wohl noch selbst nachgeforscht :wink:
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Re: Verringern des Arbeitsspeicherverbrauchs

Beitrag von pfid »

solarix hat geschrieben:
pfid hat geschrieben: Ob QT dafür ne API anbietet, weiß ich jetzt nicht.
Ja.. die API für die QThreads ist derart riesig und unübersichtlich, dass man das leicht übersehen kann.
Ich hatte in dem Augenblick einfach keine Zeit/Lust, die Doku anzuschauen.
Antworten