summaryrefslogtreecommitdiffstats
path: root/scripts/buildstats-diff
diff options
context:
space:
mode:
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>2017-01-25 10:12:47 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-01-28 23:32:16 +0000
commit48f79758ea1a4a2abac38566e411e8d0a6f66ac5 (patch)
treeb13c6dd16db3dd722b8f664d284a5bff755370c3 /scripts/buildstats-diff
parent46ed698f052f954e53328f81dc01221ac38a2031 (diff)
downloadpoky-48f79758ea1a4a2abac38566e411e8d0a6f66ac5.tar.gz
scripts/buildstats-diff: simplify timestamp handling
Simply use floats instead of datetime and timedelta objects for handling timestamps. (From OE-Core rev: d97c844f388bd4c52248fe597d5985ef20d5a96d) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/buildstats-diff')
-rwxr-xr-xscripts/buildstats-diff34
1 files changed, 3 insertions, 31 deletions
diff --git a/scripts/buildstats-diff b/scripts/buildstats-diff
index f918a6d5e0..5cea184eb2 100755
--- a/scripts/buildstats-diff
+++ b/scripts/buildstats-diff
@@ -22,7 +22,6 @@ import os
22import re 22import re
23import sys 23import sys
24from collections import namedtuple 24from collections import namedtuple
25from datetime import datetime, timedelta, tzinfo
26from operator import attrgetter 25from operator import attrgetter
27 26
28# Setup logging 27# Setup logging
@@ -35,38 +34,11 @@ class ScriptError(Exception):
35 pass 34 pass
36 35
37 36
38class TimeZone(tzinfo):
39 """Simple fixed-offset tzinfo"""
40 def __init__(self, seconds, name):
41 self._offset = timedelta(seconds=seconds)
42 self._name = name
43
44 def utcoffset(self, dt):
45 return self._offset
46
47 def tzname(self, dt):
48 return self._name
49
50 def dst(self, dt):
51 return None
52
53TIMEZONES = {'UTC': TimeZone(0, 'UTC'),
54 'EET': TimeZone(7200, 'EET'),
55 'EEST': TimeZone(10800, 'EEST')}
56
57taskdiff_fields = ('pkg', 'pkg_op', 'task', 'task_op', 'value1', 'value2', 37taskdiff_fields = ('pkg', 'pkg_op', 'task', 'task_op', 'value1', 'value2',
58 'absdiff', 'reldiff') 38 'absdiff', 'reldiff')
59TaskDiff = namedtuple('TaskDiff', ' '.join(taskdiff_fields)) 39TaskDiff = namedtuple('TaskDiff', ' '.join(taskdiff_fields))
60 40
61 41
62def to_datetime_obj(obj):
63 """Helper for getting timestamps in datetime format"""
64 if isinstance(obj, datetime):
65 return obj
66 else:
67 return datetime.utcfromtimestamp(obj).replace(tzinfo=TIMEZONES['UTC'])
68
69
70class BSTask(dict): 42class BSTask(dict):
71 def __init__(self, *args, **kwargs): 43 def __init__(self, *args, **kwargs):
72 self['start_time'] = None 44 self['start_time'] = None
@@ -86,7 +58,7 @@ class BSTask(dict):
86 @property 58 @property
87 def walltime(self): 59 def walltime(self):
88 """Elapsed wall clock time""" 60 """Elapsed wall clock time"""
89 return self['elapsed_time'].total_seconds() 61 return self['elapsed_time']
90 62
91 @property 63 @property
92 def read_bytes(self): 64 def read_bytes(self):
@@ -118,10 +90,10 @@ def read_buildstats_file(buildstat_file):
118 key, val = line.split(':', 1) 90 key, val = line.split(':', 1)
119 val = val.strip() 91 val = val.strip()
120 if key == 'Started': 92 if key == 'Started':
121 start_time = to_datetime_obj(float(val)) 93 start_time = float(val)
122 bs_task['start_time'] = start_time 94 bs_task['start_time'] = start_time
123 elif key == 'Ended': 95 elif key == 'Ended':
124 end_time = to_datetime_obj(float(val)) 96 end_time = float(val)
125 elif key.startswith('IO '): 97 elif key.startswith('IO '):
126 split = key.split() 98 split = key.split()
127 bs_task['iostat'][split[1]] = int(val) 99 bs_task['iostat'][split[1]] = int(val)