- Timestamp:
- Jan 29, 2024 5:37:36 PM (13 months ago)
- svn:sync-xref-src-repo-rev:
- 161356
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityOverviewWidget.cpp
r103107 r103110 239 239 virtual bool isRunning() const = 0; 240 240 virtual bool isCloudVM() const = 0; 241 virtual void updateColumnData() = 0; 241 242 QUuid m_VMuid; 242 243 QString m_strVMName; … … 257 258 quint64 m_uDiskReadTotal; 258 259 260 protected: 261 262 virtual void updateMetricData() = 0; 259 263 260 264 /** The strings of each column for the item. We update this during performance query … … 264 268 private: 265 269 266 void setupPerformanceCollector();267 270 }; 268 271 … … 286 289 virtual bool isRunning() const override; 287 290 virtual bool isCloudVM() const override; 291 virtual void updateColumnData() override; 288 292 void setMachineState(KMachineState enmState); 289 293 … … 294 298 295 299 CMachineDebugger m_comDebugger; 300 301 protected: 302 303 virtual void updateMetricData() override; 296 304 297 305 private: … … 316 324 virtual bool isRunning() const override; 317 325 virtual bool isCloudVM() const override; 326 virtual void updateColumnData() override; 327 328 protected: 329 330 virtual void updateMetricData() override; 318 331 319 332 private: … … 924 937 } 925 938 939 void UIActivityOverviewItemCloud::updateMetricData() 940 { 941 } 942 943 void UIActivityOverviewItemCloud::updateColumnData() 944 { 945 } 946 926 947 927 948 /********************************************************************************************************************************* … … 985 1006 { 986 1007 m_enmMachineState = enmState; 1008 } 1009 1010 1011 void UIActivityOverviewItemLocal::updateMetricData() 1012 { 1013 if (!m_comDebugger.isOk()) 1014 return; 1015 1016 ULONG aPctExecuting; 1017 ULONG aPctHalted; 1018 ULONG aPctVMM; 1019 1020 /* CPU Load: */ 1021 m_comDebugger.GetCPULoad(0x7fffffff, aPctExecuting, aPctHalted, aPctVMM); 1022 m_uCPUGuestLoad = aPctExecuting; 1023 m_uCPUVMMLoad = aPctVMM; 1024 1025 /* Network rate: */ 1026 quint64 uPrevDownTotal = m_uNetworkDownTotal; 1027 quint64 uPrevUpTotal = m_uNetworkUpTotal; 1028 UIMonitorCommon::getNetworkLoad(m_comDebugger, 1029 m_uNetworkDownTotal, m_uNetworkUpTotal); 1030 m_uNetworkDownRate = m_uNetworkDownTotal - uPrevDownTotal; 1031 m_uNetworkUpRate = m_uNetworkUpTotal - uPrevUpTotal; 1032 1033 /* IO rate: */ 1034 quint64 uPrevWriteTotal = m_uDiskWriteTotal; 1035 quint64 uPrevReadTotal = m_uDiskReadTotal; 1036 UIMonitorCommon::getDiskLoad(m_comDebugger, 1037 m_uDiskWriteTotal, m_uDiskReadTotal); 1038 m_uDiskWriteRate = m_uDiskWriteTotal - uPrevWriteTotal; 1039 m_uDiskReadRate = m_uDiskReadTotal - uPrevReadTotal; 1040 1041 /* VM Exits: */ 1042 quint64 uPrevVMExitsTotal = m_uVMExitTotal; 1043 UIMonitorCommon::getVMMExitCount(m_comDebugger, m_uVMExitTotal); 1044 m_uVMExitRate = m_uVMExitTotal - uPrevVMExitsTotal; 1045 } 1046 1047 void UIActivityOverviewItemLocal::updateColumnData() 1048 { 1049 updateMetricData(); 1050 1051 int iDecimalCount = 2; 1052 1053 m_columnData[VMActivityOverviewColumn_Name] = m_strVMName; 1054 m_columnData[VMActivityOverviewColumn_CPUGuestLoad] = 1055 QString("%1%").arg(QString::number(m_uCPUGuestLoad)); 1056 m_columnData[VMActivityOverviewColumn_CPUVMMLoad] = 1057 QString("%1%").arg(QString::number(m_uCPUVMMLoad)); 1058 1059 if (isWithGuestAdditions()) 1060 m_columnData[VMActivityOverviewColumn_RAMUsedAndTotal] = 1061 QString("%1/%2").arg(UITranslator::formatSize(_1K * m_uUsedRAM, iDecimalCount)). 1062 arg(UITranslator::formatSize(_1K * m_uTotalRAM, iDecimalCount)); 1063 else 1064 m_columnData[VMActivityOverviewColumn_RAMUsedAndTotal] = UIVMActivityOverviewWidget::tr("N/A"); 1065 1066 if (isWithGuestAdditions()) 1067 m_columnData[VMActivityOverviewColumn_RAMUsedPercentage] = 1068 QString("%1%").arg(QString::number(m_fRAMUsagePercentage, 'f', 2)); 1069 else 1070 m_columnData[VMActivityOverviewColumn_RAMUsedPercentage] = UIVMActivityOverviewWidget::tr("N/A"); 1071 1072 m_columnData[VMActivityOverviewColumn_NetworkUpRate] = 1073 QString("%1").arg(UITranslator::formatSize(m_uNetworkUpRate, iDecimalCount)); 1074 1075 m_columnData[VMActivityOverviewColumn_NetworkDownRate] = 1076 QString("%1").arg(UITranslator::formatSize(m_uNetworkDownRate, iDecimalCount)); 1077 1078 m_columnData[VMActivityOverviewColumn_NetworkUpTotal] = 1079 QString("%1").arg(UITranslator::formatSize(m_uNetworkUpTotal, iDecimalCount)); 1080 1081 m_columnData[VMActivityOverviewColumn_NetworkDownTotal] = 1082 QString("%1").arg(UITranslator::formatSize(m_uNetworkDownTotal, iDecimalCount)); 1083 1084 m_columnData[VMActivityOverviewColumn_DiskIOReadRate] = 1085 QString("%1").arg(UITranslator::formatSize(m_uDiskReadRate, iDecimalCount)); 1086 1087 m_columnData[VMActivityOverviewColumn_DiskIOWriteRate] = 1088 QString("%1").arg(UITranslator::formatSize(m_uDiskWriteRate, iDecimalCount)); 1089 1090 m_columnData[VMActivityOverviewColumn_DiskIOReadTotal] = 1091 QString("%1").arg(UITranslator::formatSize(m_uDiskReadTotal, iDecimalCount)); 1092 1093 m_columnData[VMActivityOverviewColumn_DiskIOWriteTotal] = 1094 QString("%1").arg(UITranslator::formatSize(m_uDiskWriteTotal, iDecimalCount)); 1095 1096 m_columnData[VMActivityOverviewColumn_VMExits] = 1097 QString("%1/%2").arg(UITranslator::addMetricSuffixToNumber(m_uVMExitRate)). 1098 arg(UITranslator::addMetricSuffixToNumber(m_uVMExitTotal)); 987 1099 } 988 1100 … … 1248 1360 void UIActivityOverviewModel::sltTimeout() 1249 1361 { 1362 1363 1364 /* Host's RAM usage is obtained from IHost not from IPerformanceCollector: */ 1365 getHostRAMStats(); 1366 1367 /* Use IPerformanceCollector to update VM RAM usage and Host CPU and file IO stats: */ 1368 queryPerformanceCollector(); 1369 1370 for (int i = 0; i < m_itemList.size(); ++i) 1371 { 1372 if (m_itemList[i] && !m_itemList[i]->isCloudVM()) 1373 m_itemList[i]->updateColumnData(); 1374 } 1375 1250 1376 #if 0 1251 ULONG aPctExecuting;1252 ULONG aPctHalted;1253 ULONG aPctVMM;1254 1255 bool fCPUColumns = columnVisible(VMActivityOverviewColumn_CPUVMMLoad) || columnVisible(VMActivityOverviewColumn_CPUGuestLoad);1256 bool fNetworkColumns = columnVisible(VMActivityOverviewColumn_NetworkUpRate)1257 || columnVisible(VMActivityOverviewColumn_NetworkDownRate)1258 || columnVisible(VMActivityOverviewColumn_NetworkUpTotal)1259 || columnVisible(VMActivityOverviewColumn_NetworkDownTotal);1260 bool fIOColumns = columnVisible(VMActivityOverviewColumn_DiskIOReadRate)1261 || columnVisible(VMActivityOverviewColumn_DiskIOWriteRate)1262 || columnVisible(VMActivityOverviewColumn_DiskIOReadTotal)1263 || columnVisible(VMActivityOverviewColumn_DiskIOWriteTotal);1264 bool fVMExitColumn = columnVisible(VMActivityOverviewColumn_VMExits);1265 1266 /* Host's RAM usage is obtained from IHost not from IPerformanceCollectior: */1267 getHostRAMStats();1268 1269 /* RAM usage and Host Stats: */1270 queryPerformanceCollector();1271 1272 for (int i = 0; i < m_itemList.size(); ++i)1273 {1274 if (!m_itemList[i].m_comDebugger.isNull())1275 {1276 /* CPU Load: */1277 if (fCPUColumns)1278 {1279 m_itemList[i].m_comDebugger.GetCPULoad(0x7fffffff, aPctExecuting, aPctHalted, aPctVMM);1280 m_itemList[i].m_uCPUGuestLoad = aPctExecuting;1281 m_itemList[i].m_uCPUVMMLoad = aPctVMM;1282 }1283 /* Network rate: */1284 if (fNetworkColumns)1285 {1286 quint64 uPrevDownTotal = m_itemList[i].m_uNetworkDownTotal;1287 quint64 uPrevUpTotal = m_itemList[i].m_uNetworkUpTotal;1288 UIMonitorCommon::getNetworkLoad(m_itemList[i].m_comDebugger,1289 m_itemList[i].m_uNetworkDownTotal, m_itemList[i].m_uNetworkUpTotal);1290 m_itemList[i].m_uNetworkDownRate = m_itemList[i].m_uNetworkDownTotal - uPrevDownTotal;1291 m_itemList[i].m_uNetworkUpRate = m_itemList[i].m_uNetworkUpTotal - uPrevUpTotal;1292 }1293 /* IO rate: */1294 if (fIOColumns)1295 {1296 quint64 uPrevWriteTotal = m_itemList[i].m_uDiskWriteTotal;1297 quint64 uPrevReadTotal = m_itemList[i].m_uDiskReadTotal;1298 UIMonitorCommon::getDiskLoad(m_itemList[i].m_comDebugger,1299 m_itemList[i].m_uDiskWriteTotal, m_itemList[i].m_uDiskReadTotal);1300 m_itemList[i].m_uDiskWriteRate = m_itemList[i].m_uDiskWriteTotal - uPrevWriteTotal;1301 m_itemList[i].m_uDiskReadRate = m_itemList[i].m_uDiskReadTotal - uPrevReadTotal;1302 }1303 /* VM Exits: */1304 if (fVMExitColumn)1305 {1306 quint64 uPrevVMExitsTotal = m_itemList[i].m_uVMExitTotal;1307 UIMonitorCommon::getVMMExitCount(m_itemList[i].m_comDebugger, m_itemList[i].m_uVMExitTotal);1308 m_itemList[i].m_uVMExitRate = m_itemList[i].m_uVMExitTotal - uPrevVMExitsTotal;1309 }1310 }1311 }1312 int iDecimalCount = 2;1313 for (int i = 0; i < m_itemList.size(); ++i)1314 {1315 m_itemList[i].m_columnData[VMActivityOverviewColumn_Name] = m_itemList[i].m_strVMName;1316 m_itemList[i].m_columnData[VMActivityOverviewColumn_CPUGuestLoad] =1317 QString("%1%").arg(QString::number(m_itemList[i].m_uCPUGuestLoad));1318 m_itemList[i].m_columnData[VMActivityOverviewColumn_CPUVMMLoad] =1319 QString("%1%").arg(QString::number(m_itemList[i].m_uCPUVMMLoad));1320 1321 if (m_itemList[i].isWithGuestAdditions())1322 m_itemList[i].m_columnData[VMActivityOverviewColumn_RAMUsedAndTotal] =1323 QString("%1/%2").arg(UITranslator::formatSize(_1K * m_itemList[i].m_uUsedRAM, iDecimalCount)).1324 arg(UITranslator::formatSize(_1K * m_itemList[i].m_uTotalRAM, iDecimalCount));1325 else1326 m_itemList[i].m_columnData[VMActivityOverviewColumn_RAMUsedAndTotal] = UIVMActivityOverviewWidget::tr("N/A");1327 1328 if (m_itemList[i].isWithGuestAdditions())1329 m_itemList[i].m_columnData[VMActivityOverviewColumn_RAMUsedPercentage] =1330 QString("%1%").arg(QString::number(m_itemList[i].m_fRAMUsagePercentage, 'f', 2));1331 else1332 m_itemList[i].m_columnData[VMActivityOverviewColumn_RAMUsedPercentage] = UIVMActivityOverviewWidget::tr("N/A");1333 1334 m_itemList[i].m_columnData[VMActivityOverviewColumn_NetworkUpRate] =1335 QString("%1").arg(UITranslator::formatSize(m_itemList[i].m_uNetworkUpRate, iDecimalCount));1336 1337 m_itemList[i].m_columnData[VMActivityOverviewColumn_NetworkDownRate] =1338 QString("%1").arg(UITranslator::formatSize(m_itemList[i].m_uNetworkDownRate, iDecimalCount));1339 1340 m_itemList[i].m_columnData[VMActivityOverviewColumn_NetworkUpTotal] =1341 QString("%1").arg(UITranslator::formatSize(m_itemList[i].m_uNetworkUpTotal, iDecimalCount));1342 1343 m_itemList[i].m_columnData[VMActivityOverviewColumn_NetworkDownTotal] =1344 QString("%1").arg(UITranslator::formatSize(m_itemList[i].m_uNetworkDownTotal, iDecimalCount));1345 1346 m_itemList[i].m_columnData[VMActivityOverviewColumn_DiskIOReadRate] =1347 QString("%1").arg(UITranslator::formatSize(m_itemList[i].m_uDiskReadRate, iDecimalCount));1348 1349 m_itemList[i].m_columnData[VMActivityOverviewColumn_DiskIOWriteRate] =1350 QString("%1").arg(UITranslator::formatSize(m_itemList[i].m_uDiskWriteRate, iDecimalCount));1351 1352 m_itemList[i].m_columnData[VMActivityOverviewColumn_DiskIOReadTotal] =1353 QString("%1").arg(UITranslator::formatSize(m_itemList[i].m_uDiskReadTotal, iDecimalCount));1354 1355 m_itemList[i].m_columnData[VMActivityOverviewColumn_DiskIOWriteTotal] =1356 QString("%1").arg(UITranslator::formatSize(m_itemList[i].m_uDiskWriteTotal, iDecimalCount));1357 1358 m_itemList[i].m_columnData[VMActivityOverviewColumn_VMExits] =1359 QString("%1/%2").arg(UITranslator::addMetricSuffixToNumber(m_itemList[i].m_uVMExitRate)).1360 arg(UITranslator::addMetricSuffixToNumber(m_itemList[i].m_uVMExitTotal));1361 }1362 1377 1363 1378 for (int i = 0; i < (int)VMActivityOverviewColumn_Max; ++i)
Note:
See TracChangeset
for help on using the changeset viewer.