Home | History | Annotate | Download | only in scripts

Lines Matching defs:Period

209 class Period(object):
212 parts: period and acc_period.
213 When used for a line, period is the event count occurred when running
218 def __init__(self, period=0, acc_period=0):
219 self.period = period
224 self.period += other.period
230 """Period for each shared library"""
233 self.period = Period()
236 def add_period(self, period):
237 self.period += period
241 """Period for each source file"""
244 self.period = Period()
245 # Period for each line in the file.
247 # Period for each function in the source file.
251 def add_period(self, period):
252 self.period += period
255 def add_line_period(self, line, period):
258 self.line_dict[line] = a = Period()
259 a += period
262 def add_function_period(self, function_name, function_start_line, period):
267 self.function_dict[function_name] = a = [function_start_line, Period()]
268 a[1] += period
380 """read perf.data, collect Period for all types:
383 self.period = 0
405 # Each sample has a callchain, but its period is only used once
406 # to add period for each function/source_line/source_file/binary.
415 period = Period(sample.period, sample.period)
419 period = Period(0, sample.period)
423 # Add period to dso.
424 self._add_dso_period(symbol.dso_name, period, used_dso_dict)
425 # Add period to source file.
429 self._add_file_period(source, period, used_file_dict)
430 # Add period to line.
432 self._add_line_period(source, period, used_line_dict)
433 # Add period to function.
437 self._add_file_period(source, period, used_file_dict)
439 self._add_function_period(source, period, used_function_dict)
442 self.period += sample.period
445 def _add_dso_period(self, dso_name, period, used_dso_dict):
451 dso_period.add_period(period)
454 def _add_file_period(self, source, period, used_file_dict):
460 file_period.add_period(period)
463 def _add_line_period(self, source, period, used_line_dict):
467 file_period.add_line_period(source.line, period)
470 def _add_function_period(self, source, period, used_function_dict):
474 file_period.add_function_period(source.function, source.line, period)
480 f.write('total period: %d\n\n' % self.period)
482 key=lambda x: x.period.acc_period, reverse=True)
485 self._get_percentage_str(dso_period.period)))
489 key=lambda x: x.period.acc_period, reverse=True)
492 self._get_percentage_str(file_period.period)))
495 self._get_percentage_str(file_period.period)))
498 func_start_line, period = file_period.function_dict[func_name]
499 values.append((func_name, func_start_line, period))
510 def _get_percentage_str(self, period, short=False):
511 s = 'acc_p: %f%%, p: %f%%' if short else 'accumulated_period: %f%%, period: %f%%'
512 return s % self._get_percentage(period)
515 def _get_percentage(self, period):
516 if self.period == 0:
518 acc_p = 100.0 * period.acc_period / self.period
519 p = 100.0 * period.period / self.period
558 """Annotate Source files: add acc_period/period for each source file.
608 func_start_line, period = file_period.function_dict[func_name]
612 annotates[line] = '[func] ' + self._get_percentage_str(period, True)
613 annotates[1] = '[file] ' + self._get_percentage_str(file_period.period, True)