Skip to content
Snippets Groups Projects
Commit 0345ca0e authored by Tomasz Grabiec's avatar Tomasz Grabiec Committed by Pekka Enberg
Browse files

trace: move TimeRange from prof.py to trace.py

parent 033ec230
No related branches found
No related tags found
No related merge requests found
...@@ -20,38 +20,6 @@ class ProfNode(tree.TreeNode): ...@@ -20,38 +20,6 @@ class ProfNode(tree.TreeNode):
'resident_time': self.resident_time 'resident_time': self.resident_time
} }
class TimeRange(object):
"""
Represents time from @begin inclusive to @end exclusive.
None in any of these means open range from that side.
"""
def __init__(self, begin, end):
self.begin = begin
self.end = end
def __contains__(self, timestamp):
if self.begin and timestamp < self.begin:
return False
if self.end and timestamp >= self.end:
return False
return True
def intersection(self, other):
begin = max(self.begin, other.begin)
if self.end is None:
end = other.end
elif other.end is None:
end = self.end
else:
end = min(self.end, other.end)
if begin and end and begin > end:
return None
return TimeRange(begin, end)
class ProfSample: class ProfSample:
def __init__(self, timestamp, thread, backtrace, resident_time=None): def __init__(self, timestamp, thread, backtrace, resident_time=None):
self.thread = thread self.thread = thread
...@@ -61,7 +29,7 @@ class ProfSample: ...@@ -61,7 +29,7 @@ class ProfSample:
@property @property
def time_range(self): def time_range(self):
return TimeRange(self.timestamp, self.timestamp + self.resident_time) return trace.TimeRange(self.timestamp, self.timestamp + self.resident_time)
def intersection(self, time_range): def intersection(self, time_range):
intersection = self.time_range.intersection(time_range) intersection = self.time_range.intersection(time_range)
......
...@@ -32,6 +32,38 @@ def simple_symbol_formatter(addr): ...@@ -32,6 +32,38 @@ def simple_symbol_formatter(addr):
default_backtrace_formatter = BacktraceFormatter(simple_symbol_formatter) default_backtrace_formatter = BacktraceFormatter(simple_symbol_formatter)
class TimeRange(object):
"""
Represents time from @begin inclusive to @end exclusive.
None in any of these means open range from that side.
"""
def __init__(self, begin, end):
self.begin = begin
self.end = end
def __contains__(self, timestamp):
if self.begin and timestamp < self.begin:
return False
if self.end and timestamp >= self.end:
return False
return True
def intersection(self, other):
begin = max(self.begin, other.begin)
if self.end is None:
end = other.end
elif other.end is None:
end = self.end
else:
end = min(self.end, other.end)
if begin and end and begin > end:
return None
return TimeRange(begin, end)
class TracePoint: class TracePoint:
def __init__(self, key, name, signature, format): def __init__(self, key, name, signature, format):
self.key = key self.key = key
......
...@@ -113,7 +113,7 @@ def int_or_none(value): ...@@ -113,7 +113,7 @@ def int_or_none(value):
def show_profile(args, sample_producer): def show_profile(args, sample_producer):
resolver = symbol_resolver(args) resolver = symbol_resolver(args)
time_range = prof.TimeRange(int_or_none(args.since), int_or_none(args.until)) time_range = trace.TimeRange(int_or_none(args.since), int_or_none(args.until))
if args.min_duration: if args.min_duration:
min_duration = prof.parse_time_as_nanos(args.min_duration) min_duration = prof.parse_time_as_nanos(args.min_duration)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment