The align_data method creates a copy of StatCPUMeasurementResults and
based on the provided start and end timestamps copies only those
measurement samples that fit the timestamp interval.
v2:
- removed unused deepcopy import
- removed unnecessary _copy method
Signed-off-by: Jan Tluka <jtluka(a)redhat.com>
---
.../Perf/Measurements/StatCPUMeasurement.py | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/lnst/RecipeCommon/Perf/Measurements/StatCPUMeasurement.py
b/lnst/RecipeCommon/Perf/Measurements/StatCPUMeasurement.py
index 3abcf7d0..213d0379 100644
--- a/lnst/RecipeCommon/Perf/Measurements/StatCPUMeasurement.py
+++ b/lnst/RecipeCommon/Perf/Measurements/StatCPUMeasurement.py
@@ -34,6 +34,23 @@ class StatCPUMeasurementResults(CPUMeasurementResults):
def end_timestamp(self):
return self._data["user"][-1].timestamp
+ def align_data(self, start, end):
+ result_copy = StatCPUMeasurementResults(
+ self.measurement,
+ self.host,
+ self.cpu
+ )
+ for cpu_state, intervals in self._data.items():
+ aligned_interval = [
+ interval
+ for interval in intervals
+ if interval.timestamp >= start and interval.timestamp <= end
+ ]
+
+ result_copy._data[cpu_state] = SequentialPerfResult(aligned_interval)
+ return result_copy
+
+
class StatCPUMeasurement(BaseCPUMeasurement):
def __init__(self, *args):
super(StatCPUMeasurement, self).__init__(*args)
--
2.26.2