aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/ctfvisualizer
diff options
context:
space:
mode:
authorTim Henning <tim.henning@kdab.com>2019-10-17 17:08:08 +0200
committerTim Henning <tim.henning@kdab.com>2019-10-24 08:48:10 +0000
commit8d91258cfae613dd4610d95762520130fdbf28ec (patch)
tree31a6e40121e2518607514c45c128d83bef479fc8 /src/plugins/ctfvisualizer
parent1673e692c5447c78bca9400fe6e3495fda042e39 (diff)
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>
Diffstat (limited to 'src/plugins/ctfvisualizer')
-rw-r--r--src/plugins/ctfvisualizer/ctfstatisticsmodel.cpp20
-rw-r--r--src/plugins/ctfvisualizer/ctfstatisticsmodel.h3
-rw-r--r--src/plugins/ctfvisualizer/ctftracemanager.cpp1
3 files changed, 24 insertions, 0 deletions
diff --git a/src/plugins/ctfvisualizer/ctfstatisticsmodel.cpp b/src/plugins/ctfvisualizer/ctfstatisticsmodel.cpp
index fdfe54c066..8738d3d747 100644
--- a/src/plugins/ctfvisualizer/ctfstatisticsmodel.cpp
+++ b/src/plugins/ctfvisualizer/ctfstatisticsmodel.cpp
@@ -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:
diff --git a/src/plugins/ctfvisualizer/ctfstatisticsmodel.h b/src/plugins/ctfvisualizer/ctfstatisticsmodel.h
index 99ede0f638..434d7c9c96 100644
--- a/src/plugins/ctfvisualizer/ctfstatisticsmodel.h
+++ b/src/plugins/ctfvisualizer/ctfstatisticsmodel.h
@@ -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;
};
diff --git a/src/plugins/ctfvisualizer/ctftracemanager.cpp b/src/plugins/ctfvisualizer/ctftracemanager.cpp
index 382fe54438..52859e08b1 100644
--- a/src/plugins/ctfvisualizer/ctftracemanager.cpp
+++ b/src/plugins/ctfvisualizer/ctftracemanager.cpp
@@ -282,6 +282,7 @@ void CtfTraceManager::updateStatistics()
}
}
}
+ m_statisticsModel->setMeasurementDuration(qint64((m_traceEnd - m_traceBegin) * 1000));
m_statisticsModel->endLoading();
}