diff options
author | Yordan Karadzhov <ykaradzhov@vmware.com> | 2019-02-13 18:12:13 +0200 |
---|---|---|
committer | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2019-02-13 14:54:23 -0500 |
commit | 5635625445f974bb852473aa56f4c0fae297c9f8 (patch) | |
tree | ad92beff2408cbfc0ed160314f5bf8e95e8b1413 | |
parent | 364f1f232249e2022b1a232b33de4d231bc62ba6 (diff) | |
download | trace-cmd-5635625445f974bb852473aa56f4c0fae297c9f8.tar.gz |
kernel-shark: Make the time labels of the marker more readable
The precision of the displayed time of the two markers is set to
1 microsecond (as in the table). In the same time the precision of
the time difference (Delta) is now 1 nanosecond, because we expect
that the user do not care that much about the absolute time of the
event, but may want to measure the interval between two events with
the highest possible precision. The displayed time is formatted
(spaces added) in a way that aims to make it easy to read the
milliseconds and the microseconds.
Link: http://lore.kernel.org/linux-trace-devel/20190213161216.14438-6-ykaradzhov@vmware.com
Signed-off-by: Yordan Karadzhov <ykaradzhov@vmware.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r-- | kernel-shark/src/KsDualMarker.cpp | 42 |
1 files changed, 26 insertions, 16 deletions
diff --git a/kernel-shark/src/KsDualMarker.cpp b/kernel-shark/src/KsDualMarker.cpp index 43bc1774..5dcbaaea 100644 --- a/kernel-shark/src/KsDualMarker.cpp +++ b/kernel-shark/src/KsDualMarker.cpp @@ -329,29 +329,39 @@ void KsDualMarkerSM::updateMarkers(const KsDataStore &data, */ void KsDualMarkerSM::updateLabels() { - QString mark, delta; + char separator(' '); + int precision(6); // 1 microsecond precision. + + auto lamSetTimeLabel = [&precision, &separator] (QLabel &l, int64_t t) { + QString time = KsUtils::Ts2String(t, precision); + int i = time.indexOf('.') + 4; + + /* Insert separators for milliseconds amd microseconds. */ + while (i < time.size()) { + time.insert(i, separator); + i = i + 4; + } + + l.setText(time); + }; // Marker A - if (_markA._isSet) { - mark = KsUtils::Ts2String(_markA._ts, 7); - _labelMA.setText(mark); - } else { - _labelMA.setText(""); - } + if (_markA._isSet) + lamSetTimeLabel(_labelMA, _markA._ts); + else + _labelMA.clear(); // Marker B - if (_markB._isSet) { - mark = KsUtils::Ts2String(_markB._ts, 7); - _labelMB.setText(mark); - } else { - _labelMB.setText(""); - } + if (_markB._isSet) + lamSetTimeLabel(_labelMB, _markB._ts); + else + _labelMB.clear(); // Delta if (_markA._isSet && _markB._isSet) { - delta = KsUtils::Ts2String(_markB._ts - _markA._ts, 7); - _labelDelta.setText(delta); + precision = 9; // 1 nanoseconds precision. + lamSetTimeLabel(_labelDelta, _markB._ts - _markA._ts); } else { - _labelDelta.setText(""); + _labelDelta.clear(); } } |