| 44 | return t |
| 45 | |
| 46 | class Report: |
| 47 | def __init__(self, name): |
| 48 | self.name = name |
| 49 | self.samples = {} |
| 50 | |
| 51 | def add_sample(self, name, size, time): |
| 52 | if not name in self.samples: |
| 53 | self.samples[name] = [] |
| 54 | |
| 55 | self.samples[name].append((size, time)) |
| 56 | |
| 57 | def display(self): |
| 58 | for name in self.samples.keys(): |
| 59 | print('=== %s with %s ===' % (self.name, name)) |
| 60 | print('size,time (ms)') |
| 61 | |
| 62 | for sample in self.samples[name]: |
| 63 | print('%d,%f' % sample) |
| 64 | |
| 65 | def plot_time(self, name): |
| 66 | if not name in self.samples: |
| 67 | return |
| 68 | |
| 69 | x = [] |
| 70 | y = [] |
| 71 | |
| 72 | any_valid_samples = False |
| 73 | |
| 74 | for sample in self.samples[name]: |
| 75 | if sample[1] == 0: |
| 76 | continue |
| 77 | |
| 78 | x.append(sample[0]) |
| 79 | y.append(sample[1]) |
| 80 | any_valid_samples = True |
| 81 | |
| 82 | if not any_valid_samples: |
| 83 | return |
| 84 | |
| 85 | pylab.loglog(x, y, marker='o', label=name) |
| 86 | pylab.xlabel("Size") |
| 87 | pylab.ylabel("Time (ms)") |
| 88 | pylab.title(self.name) |
| 89 | |
| 90 | def plot_rate(self, name): |
| 91 | if not name in self.samples: |
| 92 | return |
| 93 | |
| 94 | x = [] |
| 95 | y = [] |
| 96 | |
| 97 | any_valid_samples = False |
| 98 | |
| 99 | for sample in self.samples[name]: |
| 100 | if sample[1] == 0: |
| 101 | continue |
| 102 | |
| 103 | x.append(sample[0]) |