diff options
author | Tim Henning <tim.henning@kdab.com> | 2019-10-17 17:08:08 +0200 |
---|---|---|
committer | Tim Henning <tim.henning@kdab.com> | 2019-10-24 08:48:10 +0000 |
commit | 8d91258cfae613dd4610d95762520130fdbf28ec (patch) | |
tree | 31a6e40121e2518607514c45c128d83bef479fc8 /src/plugins/ctfvisualizer | |
parent | 1673e692c5447c78bca9400fe6e3495fda042e39 (diff) | |
download | qt-creator-8d91258cfae613dd4610d95762520130fdbf28ec.tar.gz |
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.cpp | 20 | ||||
-rw-r--r-- | src/plugins/ctfvisualizer/ctfstatisticsmodel.h | 3 | ||||
-rw-r--r-- | src/plugins/ctfvisualizer/ctftracemanager.cpp | 1 |
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(); } |