Ratheendrans
10th June 2013, 12:18
Dear All,
We are facing an unusal behaviour of Qt in windows and embedded linux enviroment.
Our embedded application uses six thread to achive its computing goals. threads consists of RF reader,sensor,keypad,Tcp server,GUI thraed etc.
so in the main.cpp we create threads and start them,this enters the event loop.
we found these observations
1. when we run the applications,memory used in embedded board overshoots to 123% for 64 MB RAM for top command on linux. same application utilizes 24MB of RAM on windows.
2. When we create and start a dummy thread for test,there is significant change in the memory for embedded linux (approx 13%) while on windows/linux PC the increase is insignificant.
our dummy code for test
class myThread : public QThread
{
Q_OBJECT
public:
virtual void run();
~myThread();
public slots:
private:
Priority pri;
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv,QApplication::GuiServer);
myThread obj1,obj2,obj3;
obj1.start();
obj2.start();
obj3.start();
return a.exec();
}
The obove code show significant difference in memory usage for board compared to PC linux
We are facing an unusal behaviour of Qt in windows and embedded linux enviroment.
Our embedded application uses six thread to achive its computing goals. threads consists of RF reader,sensor,keypad,Tcp server,GUI thraed etc.
so in the main.cpp we create threads and start them,this enters the event loop.
we found these observations
1. when we run the applications,memory used in embedded board overshoots to 123% for 64 MB RAM for top command on linux. same application utilizes 24MB of RAM on windows.
2. When we create and start a dummy thread for test,there is significant change in the memory for embedded linux (approx 13%) while on windows/linux PC the increase is insignificant.
our dummy code for test
class myThread : public QThread
{
Q_OBJECT
public:
virtual void run();
~myThread();
public slots:
private:
Priority pri;
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv,QApplication::GuiServer);
myThread obj1,obj2,obj3;
obj1.start();
obj2.start();
obj3.start();
return a.exec();
}
The obove code show significant difference in memory usage for board compared to PC linux