forked from qt-creator/qt-creator
Tracing: CtfVisualizer: Add percentage of total time to statistics
Adds a column for the percentage of the time of an event to the total measurement time in percent. Change-Id: Ic3298b4ef6f34cb893edd987e645c7cfb67458b5 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This commit is contained in:
@@ -58,6 +58,11 @@ void CtfStatisticsModel::addEvent(const QString &title, qint64 durationInNs)
|
||||
}
|
||||
}
|
||||
|
||||
void CtfStatisticsModel::setMeasurementDuration(qint64 timeInNs)
|
||||
{
|
||||
m_measurementDurationInNs = timeInNs;
|
||||
}
|
||||
|
||||
void CtfStatisticsModel::endLoading()
|
||||
{
|
||||
endResetModel();
|
||||
@@ -87,6 +92,7 @@ QVariant CtfStatisticsModel::data(const QModelIndex &index, int role) const
|
||||
return Qt::AlignLeft;
|
||||
case Column::Count:
|
||||
case Column::TotalDuration:
|
||||
case Column::RelativeDuration:
|
||||
case Column::MinDuration:
|
||||
case Column::AvgDuration:
|
||||
case Column::MaxDuration:
|
||||
@@ -103,6 +109,8 @@ QVariant CtfStatisticsModel::data(const QModelIndex &index, int role) const
|
||||
return m_data.value(title).count;
|
||||
case Column::TotalDuration:
|
||||
return m_data.value(title).totalDuration;
|
||||
case Column::RelativeDuration:
|
||||
return m_data.value(title).totalDuration;
|
||||
case Column::MinDuration:
|
||||
{
|
||||
auto minDuration = m_data.value(title).minDuration;
|
||||
@@ -134,6 +142,16 @@ QVariant CtfStatisticsModel::data(const QModelIndex &index, int role) const
|
||||
else
|
||||
return "-";
|
||||
}
|
||||
case Column::RelativeDuration:
|
||||
{
|
||||
auto totalDuration = m_data.value(title).totalDuration;
|
||||
if (m_measurementDurationInNs > 0 && totalDuration > 0) {
|
||||
const double percent = (totalDuration / double(m_measurementDurationInNs)) * 100;
|
||||
return QString("%1 %").arg(percent, 0, 'f', 2);
|
||||
} else {
|
||||
return "-";
|
||||
}
|
||||
}
|
||||
case Column::MinDuration:
|
||||
{
|
||||
auto minDuration = m_data.value(title).minDuration;
|
||||
@@ -175,6 +193,8 @@ QVariant CtfStatisticsModel::headerData(int section, Qt::Orientation orientation
|
||||
return tr("Count");
|
||||
case Column::TotalDuration:
|
||||
return tr("Total Time");
|
||||
case Column::RelativeDuration:
|
||||
return tr("Percentage");
|
||||
case Column::MinDuration:
|
||||
return tr("Minimum Time");
|
||||
case Column::AvgDuration:
|
||||
|
||||
@@ -49,6 +49,7 @@ public:
|
||||
Title = 0,
|
||||
Count,
|
||||
TotalDuration,
|
||||
RelativeDuration,
|
||||
MinDuration,
|
||||
AvgDuration,
|
||||
MaxDuration,
|
||||
@@ -67,6 +68,7 @@ public:
|
||||
|
||||
void beginLoading();
|
||||
void addEvent(const QString &title, qint64 durationInNs);
|
||||
void setMeasurementDuration(qint64 timeInNs);
|
||||
void endLoading();
|
||||
|
||||
private:
|
||||
@@ -77,6 +79,7 @@ private:
|
||||
QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
|
||||
|
||||
QHash<QString, EventData> m_data;
|
||||
qint64 m_measurementDurationInNs = 0;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -282,6 +282,7 @@ void CtfTraceManager::updateStatistics()
|
||||
}
|
||||
}
|
||||
}
|
||||
m_statisticsModel->setMeasurementDuration(qint64((m_traceEnd - m_traceBegin) * 1000));
|
||||
m_statisticsModel->endLoading();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user