Skip to content

Commit 096a5ce

Browse files
committed
PR feedback
1 parent d3972c0 commit 096a5ce

File tree

7 files changed

+58
-55
lines changed

7 files changed

+58
-55
lines changed

PerfettoCds/Pipeline/CompositeDataCookers/PerfettoFrameEventCooker.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ from process in pd.DefaultIfEmpty()
7979
"Expected",
8080
result.process.Name,
8181
result.frame.Upid,
82-
result.frame.DisplayToken,
83-
result.frame.SurfaceToken,
82+
result.frame.DisplayFrameToken,
83+
result.frame.SurfaceFrameToken,
8484
new TimestampDelta(result.frame.Duration),
8585
startTimestamp,
8686
endTimestamp,
@@ -105,17 +105,17 @@ from process in pd.DefaultIfEmpty()
105105
"Actual",
106106
result.process.Name,
107107
result.frame.Upid,
108-
result.frame.DisplayToken,
109-
result.frame.SurfaceToken,
108+
result.frame.DisplayFrameToken,
109+
result.frame.SurfaceFrameToken,
110110
new TimestampDelta(result.frame.Duration),
111111
startTimestamp,
112112
endTimestamp,
113113
result.frame.JankType,
114114
result.frame.JankTag,
115-
result.frame.OnTimeFinish.ToString(),
116115
result.frame.PresentType,
117-
result.frame.GpuComposition.ToString(),
118-
result.frame.PredictionType
116+
result.frame.PredictionType,
117+
result.frame.OnTimeFinish.ToString(),
118+
result.frame.GpuComposition.ToString()
119119
);
120120

121121
this.FrameEvents.AddEvent(ev);

PerfettoCds/Pipeline/DataOutput/PerfettoFrameEvent.cs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,18 @@ public class PerfettoFrameEvent
1515
public string FrameType { get; }
1616
public string ProcessName { get; }
1717
public long Upid { get; }
18-
public long DisplayToken { get; }
19-
public long SurfaceToken { get; }
18+
public long DisplayFrameToken { get; }
19+
public long SurfaceFrameToken { get; }
2020
public TimestampDelta Duration { get; }
2121
public Timestamp StartTimestamp { get; }
2222
public Timestamp EndTimestamp { get; }
2323
public string JankType { get; }
2424
public string JankTag { get; }
25-
public string AppOnTime { get; }
2625
public string PresentType { get; }
27-
public string GpuComposition { get; }
2826
public string PredictionType { get; }
27+
public string GpuComposition { get; }
28+
29+
public string OnTimeFinish { get; }
2930

3031

3132
public PerfettoFrameEvent(string FrameType,
@@ -38,25 +39,25 @@ public PerfettoFrameEvent(string FrameType,
3839
Timestamp endTimestamp,
3940
string JankType,
4041
string JankTag,
41-
string AppOnTime,
4242
string PresentType,
43-
string GpuComposition,
44-
string PredictionType)
43+
string PredictionType,
44+
string OnTimeFinish,
45+
string GpuComposition)
4546
{
4647
this.FrameType = Common.StringIntern(FrameType);
4748
this.ProcessName = Common.StringIntern(processName);
4849
this.Upid = upid;
49-
this.DisplayToken = displayToken;
50-
this.SurfaceToken = surfaceToken;
50+
this.DisplayFrameToken = displayToken;
51+
this.SurfaceFrameToken = surfaceToken;
5152
this.Duration = duration;
5253
this.StartTimestamp = startTimestamp;
5354
this.EndTimestamp = endTimestamp;
5455
this.JankType = Common.StringIntern(JankType);
5556
this.JankTag = Common.StringIntern(JankTag);
56-
this.AppOnTime = Common.StringIntern(AppOnTime);
5757
this.PresentType = Common.StringIntern(PresentType);
58-
this.GpuComposition = Common.StringIntern(GpuComposition);
5958
this.PredictionType = Common.StringIntern(PredictionType);
59+
this.OnTimeFinish = OnTimeFinish;
60+
this.GpuComposition = GpuComposition;
6061
}
6162
}
6263
}

PerfettoCds/Pipeline/Tables/PerfettoFrameTable.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ public class PerfettoFrameTable
3939
new ColumnMetadata(new Guid("{9194517e-94ba-471f-8472-a505762b28e0}"), "JankType", "The kind of jank experienced if any"),
4040
new UIHints { Width = 210 });
4141

42-
private static readonly ColumnConfiguration AppOnTimeColumn = new ColumnConfiguration(
43-
new ColumnMetadata(new Guid("{2954eb20-961a-40e4-957f-f455e0bede1c}"), "AppOnTime", "Whether the app finished the frame on time"),
42+
private static readonly ColumnConfiguration OnTimeFinishColumn = new ColumnConfiguration(
43+
new ColumnMetadata(new Guid("{2954eb20-961a-40e4-957f-f455e0bede1c}"), "OnTimeFinish", "Whether the app finished the frame on time"),
4444
new UIHints { Width = 70 });
4545

4646
private static readonly ColumnConfiguration StartTimestampColumn = new ColumnConfiguration(
@@ -53,7 +53,7 @@ public class PerfettoFrameTable
5353

5454
private static readonly ColumnConfiguration DurationColumn = new ColumnConfiguration(
5555
new ColumnMetadata(new Guid("{49f0442f-bac7-4385-893e-ad343ed2b82a}"), "Duration", "Duration of the event"),
56-
new UIHints { Width = 70 });
56+
new UIHints { Width = 70 , AggregationMode = AggregationMode.Max , SortOrder = SortOrder.Descending });
5757

5858
private static readonly ColumnConfiguration DisplayTokenColumn = new ColumnConfiguration(
5959
new ColumnMetadata(new Guid("{104a249c-3254-4700-852f-482e9de23feb}"), "DisplayToken", "Display Token"),
@@ -101,10 +101,10 @@ public static void BuildTable(ITableBuilder tableBuilder, IDataExtensionRetrieva
101101
tableGenerator.AddColumn(ProcessIdColumn, baseProjection.Compose(x => x.Upid));
102102
tableGenerator.AddColumn(FrameTypeColumn, baseProjection.Compose(x => x.FrameType));
103103
tableGenerator.AddColumn(JankTypeColumn, baseProjection.Compose(x => x.JankType));
104-
tableGenerator.AddColumn(AppOnTimeColumn, baseProjection.Compose(x => x.AppOnTime));
104+
tableGenerator.AddColumn(OnTimeFinishColumn, baseProjection.Compose(x => x.OnTimeFinish));
105105
tableGenerator.AddColumn(DurationColumn, baseProjection.Compose(x => x.Duration));
106-
tableGenerator.AddColumn(DisplayTokenColumn, baseProjection.Compose(x => x.DisplayToken));
107-
tableGenerator.AddColumn(SurfaceTokenColumn, baseProjection.Compose(x => x.SurfaceToken));
106+
tableGenerator.AddColumn(DisplayTokenColumn, baseProjection.Compose(x => x.DisplayFrameToken));
107+
tableGenerator.AddColumn(SurfaceTokenColumn, baseProjection.Compose(x => x.SurfaceFrameToken));
108108
tableGenerator.AddColumn(PresentTypeColumn, baseProjection.Compose(x => x.PresentType));
109109
tableGenerator.AddColumn(PredictionTypeColumn, baseProjection.Compose(x => x.PredictionType));
110110
tableGenerator.AddColumn(GpuCompositionColumn, baseProjection.Compose(x => x.GpuComposition));
@@ -113,17 +113,17 @@ public static void BuildTable(ITableBuilder tableBuilder, IDataExtensionRetrieva
113113
tableGenerator.AddColumn(EndTimestampColumn, endProjection);
114114

115115

116-
var jankFramesConfig = new TableConfiguration("Jank Frames")
116+
var jankFramesConfig = new TableConfiguration("Expected/Actual Frames by Process")
117117
{
118118
Columns = new[]
119119
{
120120
ProcessNameColumn,
121+
DisplayTokenColumn,
121122
SurfaceTokenColumn,
122123
FrameTypeColumn,
123124
TableConfiguration.PivotColumn, // Columns before this get pivotted on
124-
DisplayTokenColumn,
125125
PresentTypeColumn,
126-
AppOnTimeColumn,
126+
OnTimeFinishColumn,
127127
PredictionTypeColumn,
128128
JankTypeColumn,
129129
JankTagColumn,

PerfettoProcessor/Events/PerfettoActualFrameEvent.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ public class PerfettoActualFrameEvent : PerfettoSqlEvent
3333
public string Category { get; set; }
3434
public int TrackId { get; set; }
3535
public int? ParentId { get; set; }
36-
public long DisplayToken { get; set; }
37-
public long SurfaceToken { get; set; }
36+
public long DisplayFrameToken { get; set; }
37+
public long SurfaceFrameToken { get; set; }
3838
public string LayerName { get; set; }
3939
public string PresentType { get; set; }
4040
public string JankType { get; set; }
4141
public string JankTag { get; set; }
4242
public string PredictionType { get; set; }
43-
public int Upid { get; set; }
43+
public uint Upid { get; set; }
4444
public int OnTimeFinish { get; set; }
4545
public int GpuComposition { get; set; }
4646

@@ -89,13 +89,13 @@ public override void ProcessCell(string colName,
8989
ParentId = (int)longVal;
9090
break;
9191
case "display_frame_token":
92-
DisplayToken = longVal;
92+
DisplayFrameToken = longVal;
9393
break;
9494
case "surface_frame_token":
95-
SurfaceToken = longVal;
95+
SurfaceFrameToken = longVal;
9696
break;
9797
case "upid":
98-
Upid = (int)longVal;
98+
Upid = (uint)longVal;
9999
break;
100100
case "on_time_finish":
101101
OnTimeFinish = (int)longVal;
@@ -125,16 +125,16 @@ public override void ProcessCell(string colName,
125125
LayerName = strVal;
126126
break;
127127
case "jank_type":
128-
JankType = strVal;
128+
JankType = Common.StringIntern(strVal);
129129
break;
130130
case "jank_tag":
131-
JankTag = strVal;
131+
JankTag = Common.StringIntern(strVal);
132132
break;
133133
case "prediction_type":
134-
PredictionType = strVal;
134+
PredictionType = Common.StringIntern(strVal);
135135
break;
136136
case "present_type":
137-
PresentType = strVal;
137+
PresentType = Common.StringIntern(strVal);
138138
break;
139139
}
140140
break;

PerfettoProcessor/Events/PerfettoExpectedFrameEvent.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ public class PerfettoExpectedFrameEvent : PerfettoSqlEvent
3333
public string Category { get; set; }
3434
public int TrackId { get; set; }
3535
public int? ParentId { get; set; }
36-
public int DisplayToken { get; set; }
37-
public int SurfaceToken { get; set; }
36+
public int DisplayFrameToken { get; set; }
37+
public int SurfaceFrameToken { get; set; }
3838
public string LayerName { get; set; }
39-
public int Upid { get; set; }
39+
public uint Upid { get; set; }
4040

4141
public override string GetSqlQuery()
4242
{
@@ -83,13 +83,13 @@ public override void ProcessCell(string colName,
8383
ParentId = (int)longVal;
8484
break;
8585
case "display_frame_token":
86-
DisplayToken = (int)longVal;
86+
DisplayFrameToken = (int)longVal;
8787
break;
8888
case "surface_frame_token":
89-
SurfaceToken = (int)longVal;
89+
SurfaceFrameToken = (int)longVal;
9090
break;
9191
case "upid":
92-
Upid = (int)longVal;
92+
Upid = (uint)longVal;
9393
break;
9494
}
9595

PerfettoUnitTest/PerfettoUnitTest.cs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -241,18 +241,20 @@ public void TestJankFrameTrace()
241241
var frameEvents = RuntimeExecutionResults.QueryOutput<ProcessedEventData<PerfettoFrameEvent>>(
242242
new DataOutputPath(PerfettoPluginConstants.FrameEventCookerPath, nameof(PerfettoFrameEventCooker.FrameEvents)));
243243

244-
Assert.IsTrue(frameEvents.Count == 4827);
245-
Assert.IsTrue(frameEvents[0].ProcessName == "com.android.systemui");
246-
Assert.IsTrue(frameEvents[1].StartTimestamp.ToNanoseconds == 16666666);
247-
Assert.IsTrue(frameEvents[3007].FrameType == "Actual");
248-
Assert.IsTrue(frameEvents[3007].JankTag == "Self Jank");
249-
Assert.IsTrue(frameEvents[3007].DisplayToken == 20016);
250-
Assert.IsTrue(frameEvents[3926].GpuComposition == "0");
251-
Assert.IsTrue(frameEvents[3926].PresentType == "Late Present");
252-
Assert.IsTrue(frameEvents[3926].DisplayToken == 21423);
253-
Assert.IsTrue(frameEvents[3926].PredictionType == "Valid Prediction");
254-
Assert.IsTrue(frameEvents[3926].JankType == "SurfaceFlinger CPU Deadline Missed, App Deadline Missed, Buffer Stuffing");
255-
Assert.IsTrue(frameEvents[3926].AppOnTime == "0");
244+
Assert.IsTrue(frameEvents.Count == 1219);
245+
Assert.IsTrue(frameEvents[0].ProcessName == "/system/bin/surfaceflinger");
246+
Assert.IsTrue(frameEvents[1].StartTimestamp.ToNanoseconds == 7299914108);
247+
Assert.IsTrue(frameEvents[930].FrameType == "Actual");
248+
Assert.IsTrue(frameEvents[930].Upid == 1);
249+
Assert.IsTrue(frameEvents[930].JankTag == "Self Jank");
250+
Assert.IsTrue(frameEvents[930].SurfaceFrameToken == 0);
251+
Assert.IsTrue(frameEvents[930].GpuComposition == "0");
252+
Assert.IsTrue(frameEvents[930].PresentType == "Late Present");
253+
Assert.IsTrue(frameEvents[930].DisplayFrameToken == 5329);
254+
Assert.IsTrue(frameEvents[930].PredictionType == "Valid Prediction");
255+
Assert.IsTrue(frameEvents[930].JankType == "SurfaceFlinger CPU Deadline Missed");
256+
Assert.IsTrue(frameEvents[930].OnTimeFinish == "0");
257+
Assert.IsTrue(frameEvents[930].Duration.ToNanoseconds == 28924900);
256258
}
257259
}
258260
}
-22.2 MB
Binary file not shown.

0 commit comments

Comments
 (0)