Thank you for the reply. In my application I have multiple LEDs(144) and Plots(44). These LEDs and Plots should be update every one second. Plot data will be updated every second in the server. LED status should also be updated every one second to get the status of the application running on server, So I used single QTimer to trigger every second. Currently LEDs and Plots are getting updated in the GUI every 4 to 5 seconds. Clicking on the Menus on GUI will take around 7 seconds to open the menu.

One getData will give 3 LEDs value and for few getData1() will give 5 LEDs value.
Structure of my Application
I have 3 Classes
each class has LEDs and Plots
each class will call updateLED() and updatePlots() every second via QTimer in the Mainwindow


Qt Code:
  1. //In Mainwindow
  2. void MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),UI(new Ui::MainWindow)
  3. {
  4. ui->setupUi(this);
  5. Api *api = new Api(this);
  6. Class1 *one = new Class1(this);
  7. Class2 *two = new Class2(this);
  8. Class3 *three = new Class3(this);
  9. QTimer* timer = new QTimer(this);
  10. connect(timer, SIGNAL(timeout()), this, SLOT(findUpdate()));
  11. timer->start(1000);
  12. }
  13.  
  14. void MainWindow::findUpdate()
  15. {
  16. QStringList listone = listOfdevice1;
  17. QStringList listtwo = listOfdevice2;
  18. QStringList listthree = listOfdevice3;
  19.  
  20. for(int i = 0; i < listone.size(); i++)
  21. {
  22. one->update(i);
  23. one->updateLED(i);
  24. }
  25.  
  26. for(int i = 0; i < listtwo.size(); i++)
  27. {
  28. two->updatePlot(i);
  29. two->updateLED(i);
  30. }
  31.  
  32. for(int i = 0; i < listthree.size(); i++)
  33. {
  34. three->updatePlot(i);
  35. three->updateLED(i);
  36. }
  37. }
  38.  
  39. //In ClassOne
  40. void ClassOne::update()
  41. {
  42. updatePlot();
  43. updateLED();
  44. }
  45.  
  46. void ClassOne::updatePlot()
  47. {
  48. api->getDataplotOne(url);
  49. connect(api,&Api::getDataPlotReplyOne,this,&ClassOne::updatePlotValue);
  50. }
  51.  
  52. void ClassOne::updateLED()
  53. {
  54. api->getDataLEDOne(url);
  55. connect(api,&Api::getDataLEDOneReply,this,&ClassOne::updateLEDValue);
  56. }
  57.  
  58. //In ClassTwo
  59. void ClassTwo::update()
  60. {
  61. updatePlot();
  62. updateLED();
  63. }
  64.  
  65. void ClassTwo::updatePlot()
  66. {
  67. api->getDataplotTwo(url);
  68. connect(api,&Api::getDataPlotTwoReply,this,&ClassTwo::updatePlotValue);
  69. }
  70.  
  71. void ClassTwo::updateLED()
  72. {
  73. api->getDataLEDTwo(url);
  74. connect(api,&Api::getDataLEDTwoReply,this,&ClassTwo::updateLEDValue);
  75. }
  76.  
  77. void ClassThree::update()
  78. {
  79. updatePlot();
  80. updateLED();
  81. }
  82.  
  83. void ClassThree::updatePlot()
  84. {
  85. api->getDataplotThree(url);
  86. connect(api,&Api::getDataPlotThreeReply,this,&ClassThree::updatePlotValue);
  87. }
  88.  
  89.  
  90.  
  91. void ClassThree::updateLED()
  92. {
  93. api->getDataLEDThree(url);
  94. connect(api,&Api::getDataLEDThreeReply,this,&ClassThree::updateLEDValue);
  95. }
  96.  
  97. // In Api Class
  98. void Api::getDataPlotOne(QString url)
  99. {
  100. QNetworkRequest request(QUrl(url));
  101. QNetworkReply *reply = manager.get(request);
  102. connect(reply,SIGNAL(finished()),this,SLOT(replydata1plot));
  103. }
  104. void Api::replyData1plot()
  105. {
  106. QNetworkReply *reply = qobject_cast<QNetworkReply*>(QObject::sender());
  107. if(reply)
  108. {
  109. QString response = (QString)reply.realAll();
  110. QJsonDocument json = QJsonDocument::fromJson(response.toUtf8());
  111. list = json.object();
  112. delete reply;
  113. }
  114. else
  115. {
  116. qDebug() << "Failure" << reply->errorString();
  117. delete reply;
  118. }
  119. emit getDataPlotReplyOne(list);
  120. }
  121.  
  122. void Api::getDataLEDTwo(QString url)
  123. {
  124. QNetworkRequest request(QUrl(url));
  125. QNetworkReply *reply = manager.get(request);
  126. connect(reply,SIGNAL(finished()),this,SLOT(replydata2led));
  127. }
  128. void Api::replyData1led()
  129. {
  130. QNetworkReply *reply = qobject_cast<QNetworkReply*>(QObject::sender());
  131. if(reply)
  132. {
  133. QString response = (QString)reply.realAll();
  134. QJsonDocument json = QJsonDocument::fromJson(response.toUtf8());
  135. list = json.object();
  136. delete reply;
  137. }
  138. else
  139. {
  140. qDebug() << "Failure" << reply->errorString();
  141. delete reply;
  142. }
  143. emit getDataLEDReplyTwo(list);
  144. }
  145.  
  146. void Api::replyData2plot()
  147. {
  148. QNetworkReply *reply = qobject_cast<QNetworkReply*>(QObject::sender());
  149. if(reply)
  150. {
  151. QString response = (QString)reply.realAll();
  152. QJsonDocument json = QJsonDocument::fromJson(response.toUtf8());
  153. list = json.object();
  154. delete reply;
  155. }
  156. else
  157. {
  158. qDebug() << "Failure" << reply->errorString();
  159. delete reply;
  160. }
  161. emit getDataPlotReplyTwo(list);
  162. }
  163.  
  164. void Api::getDataLEDTwo(QString url)
  165. {
  166. QNetworkRequest request(QUrl(url));
  167. QNetworkReply *reply = manager.get(request);
  168. connect(reply,SIGNAL(finished()),this,SLOT(replydata2led));
  169. }
  170. void Api::replyData2led()
  171. {
  172. QNetworkReply *reply = qobject_cast<QNetworkReply*>(QObject::sender());
  173. if(reply)
  174. {
  175. QString response = (QString)reply.realAll();
  176. QJsonDocument json = QJsonDocument::fromJson(response.toUtf8());
  177. list = json.object();
  178. delete reply;
  179. }
  180. else
  181. {
  182. qDebug() << "Failure" << reply->errorString();
  183. delete reply;
  184. }
  185. emit getDataLEDReplyTwo(list);
  186. }
  187.  
  188. //As per your suggestion I need to use multiple QTimer.
  189. QTimer* timerOnePlot=new QTimer(this);
  190. connect(timerOnePlot, SIGNAL(timeout()), this, SLOT(findUpdateOnePlot()));
To copy to clipboard, switch view to plain text mode 
//Now can you help me with a solution which wont effect my performance.

Thank you,
Deepikha