Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
displaylist_benchmark_parser.BenchmarkResult Class Reference

Public Member Functions

 __init__ (self, name, backend, time_unit, draw_call_count)
 
 __repr__ (self)
 
 add_data_point (self, family, xval, yval)
 
 add_optional_value (self, name, xval, yval)
 
 set_family_label (self, family, label)
 
 plot (self)
 
 write_csv (self, writer)
 

Public Attributes

 name
 
 series
 
 series_labels
 
 backend
 
 large_y_values
 
 y_limit
 
 time_unit
 
 draw_call_count
 
 optional_values
 

Detailed Description

Definition at line 15 of file displaylist_benchmark_parser.py.

Constructor & Destructor Documentation

◆ __init__()

displaylist_benchmark_parser.BenchmarkResult.__init__ (   self,
  name,
  backend,
  time_unit,
  draw_call_count 
)

Definition at line 17 of file displaylist_benchmark_parser.py.

17 def __init__(self, name, backend, time_unit, draw_call_count):
18 self.name = name
19 self.series = {}
20 self.series_labels = {}
21 self.backend = backend
22 self.large_y_values = False
23 self.y_limit = 200
24 self.time_unit = time_unit
25 self.draw_call_count = draw_call_count
26 self.optional_values = {}
27

Member Function Documentation

◆ __repr__()

displaylist_benchmark_parser.BenchmarkResult.__repr__ (   self)

Definition at line 28 of file displaylist_benchmark_parser.py.

28 def __repr__(self):
29 return 'Name: % s\nBackend: % s\nSeries: % s\nSeriesLabels: % s\n' % (
30 self.name, self.backend, self.series, self.series_labels
31 )
32

◆ add_data_point()

displaylist_benchmark_parser.BenchmarkResult.add_data_point (   self,
  family,
  xval,
  yval 
)

Definition at line 33 of file displaylist_benchmark_parser.py.

33 def add_data_point(self, family, xval, yval):
34 if family not in self.series:
35 self.series[family] = {'x': [], 'y': []}
36
37 self.series[family]['x'].append(xval)
38 self.series[family]['y'].append(yval)
39
40 if yval > self.y_limit:
41 self.large_y_values = True
42
static void append(char **dst, size_t *count, const char *src, size_t n)
Definition editor.cpp:211

◆ add_optional_value()

displaylist_benchmark_parser.BenchmarkResult.add_optional_value (   self,
  name,
  xval,
  yval 
)

Definition at line 43 of file displaylist_benchmark_parser.py.

43 def add_optional_value(self, name, xval, yval):
44 if name not in self.optional_values:
45 self.optional_values[name] = {}
46
47 self.optional_values[name][xval] = yval
48

◆ plot()

displaylist_benchmark_parser.BenchmarkResult.plot (   self)

Definition at line 58 of file displaylist_benchmark_parser.py.

58 def plot(self):
59 figures = []
60 figures.append(plt.figure(dpi=1200, frameon=False, figsize=(11, 8.5)))
61
62 for family in self.series:
63 plt.plot(self.series[family]['x'], self.series[family]['y'], label=self.series_labels[family])
64
65 plt.xlabel('Benchmark Seed')
66 plt.ylabel('Time (' + self.time_unit + ')')
67
68 title = ''
69 # Crop the Y axis so that we can see what's going on at the lower end
70 if self.large_y_values:
71 plt.ylim((0, self.y_limit))
72 title = self.name + ' ' + self.backend + ' (Cropped)'
73 else:
74 title = self.name + ' ' + self.backend
75
76 if self.draw_call_count != -1:
77 title += '\nDraw Call Count: ' + str(int(self.draw_call_count))
78
79 plt.title(title)
80
81 plt.grid(which='both', axis='both')
82
83 plt.legend(fontsize='xx-small')
84 plt.plot()
85
86 if self.large_y_values:
87 # Plot again but with the full Y axis visible
88 figures.append(plt.figure(dpi=1200, frameon=False, figsize=(11, 8.5)))
89 for family in self.series:
90 plt.plot(
91 self.series[family]['x'], self.series[family]['y'], label=self.series_labels[family]
92 )
93
94 plt.xlabel('Benchmark Seed')
95 plt.ylabel('Time (' + self.time_unit + ')')
96 title = self.name + ' ' + self.backend + ' (Complete)'
97
98 if self.draw_call_count != -1:
99 title += '\nDraw Call Count: ' + str(int(self.draw_call_count))
100
101 plt.title(title)
102
103 plt.grid(which='both', axis='both')
104
105 plt.legend(fontsize='xx-small')
106 plt.plot()
107
108 return figures
109
Type::kYUV Type::kRGBA() int(0.7 *637)
static void plot(SkCanvas *canvas, const char *fn, float xMin, float xMax, float yMin, float yMax, const char *label=nullptr, bool requireES3=false)

◆ set_family_label()

displaylist_benchmark_parser.BenchmarkResult.set_family_label (   self,
  family,
  label 
)

Definition at line 49 of file displaylist_benchmark_parser.py.

49 def set_family_label(self, family, label):
50 # I'm not keying the main series dict off the family label
51 # just in case we get data where the two aren't a 1:1 mapping
52 if family in self.series_labels:
53 assert self.series_labels[family] == label
54 return
55
56 self.series_labels[family] = label
57

◆ write_csv()

displaylist_benchmark_parser.BenchmarkResult.write_csv (   self,
  writer 
)

Definition at line 110 of file displaylist_benchmark_parser.py.

110 def write_csv(self, writer):
111 # For now assume that all our series have the same x values
112 # this is true for now, but may differ in the future with benchmark changes
113 x_values = []
114 y_values = []
115 for family in self.series:
116 x_values = ['x'] + self.series[family]['x']
117 y_values.append([self.series_labels[family]] + self.series[family]['y'])
118
119 for name in self.optional_values:
120 column = [name]
121 for key in self.optional_values[name]:
122 column.append(self.optional_values[name][key])
123 y_values.append(column)
124
125 writer.writerow([self.name, self.draw_call_count])
126 for line, _ in enumerate(x_values):
127 row = [x_values[line]]
128 for series, _ in enumerate(y_values):
129 row.append(y_values[series][line])
130 writer.writerow(row)
131
132

Member Data Documentation

◆ backend

displaylist_benchmark_parser.BenchmarkResult.backend

Definition at line 21 of file displaylist_benchmark_parser.py.

◆ draw_call_count

displaylist_benchmark_parser.BenchmarkResult.draw_call_count

Definition at line 25 of file displaylist_benchmark_parser.py.

◆ large_y_values

displaylist_benchmark_parser.BenchmarkResult.large_y_values

Definition at line 22 of file displaylist_benchmark_parser.py.

◆ name

displaylist_benchmark_parser.BenchmarkResult.name

Definition at line 18 of file displaylist_benchmark_parser.py.

◆ optional_values

displaylist_benchmark_parser.BenchmarkResult.optional_values

Definition at line 26 of file displaylist_benchmark_parser.py.

◆ series

displaylist_benchmark_parser.BenchmarkResult.series

Definition at line 19 of file displaylist_benchmark_parser.py.

◆ series_labels

displaylist_benchmark_parser.BenchmarkResult.series_labels

Definition at line 20 of file displaylist_benchmark_parser.py.

◆ time_unit

displaylist_benchmark_parser.BenchmarkResult.time_unit

Definition at line 24 of file displaylist_benchmark_parser.py.

◆ y_limit

displaylist_benchmark_parser.BenchmarkResult.y_limit

Definition at line 23 of file displaylist_benchmark_parser.py.


The documentation for this class was generated from the following file: