@@ -28,9 +28,11 @@ public AppStartTask()
28
28
new BlazorReachManaged ( ) ,
29
29
new BlazorFirstUI ( ) ,
30
30
new BlazorReachManagedCold ( ) ,
31
+ new BlazorReachManagedSnapshot ( ) ,
31
32
new BrowserPageShow ( ) ,
32
33
new BrowserReachManaged ( ) ,
33
34
new BrowserReachManagedCold ( ) ,
35
+ new BrowserReachManagedSnapshot ( ) ,
34
36
} ;
35
37
}
36
38
@@ -77,14 +79,14 @@ public override async Task RunStepAsync()
77
79
abstract class BlazorAppStartMeasurement : BenchTask . Measurement
78
80
{
79
81
protected readonly string urlBase = "blazor-template/" ;
80
- protected readonly string framePage = "" ;
82
+ protected virtual string FramePage => "" ;
81
83
82
84
public override async Task < bool > IsEnabled ( )
83
85
{
84
86
using var client = new HttpClient ( ) ;
85
87
try
86
88
{
87
- var url = $ "{ MainApp . Origin ( ) } /{ urlBase } { framePage } ";
89
+ var url = $ "{ MainApp . Origin ( ) } /{ urlBase } { FramePage } ";
88
90
await client . GetStringAsync ( url ) ;
89
91
}
90
92
catch
@@ -97,7 +99,7 @@ public override async Task<bool> IsEnabled()
97
99
98
100
public override Task BeforeBatch ( )
99
101
{
100
- MainApp . SetFramePage ( framePage ) ;
102
+ MainApp . SetFramePage ( FramePage ) ;
101
103
102
104
return Task . CompletedTask ;
103
105
}
@@ -127,6 +129,18 @@ public override async Task RunStepAsync()
127
129
}
128
130
}
129
131
132
+ class BlazorReachManagedSnapshot : BlazorAppStartMeasurement
133
+ {
134
+ public override string Name => "Blazor Reach managed snapshot" ;
135
+ public override int InitialSamples => 3 ;
136
+ public override bool HasRunStepAsync => true ;
137
+
138
+ public override async Task RunStepAsync ( )
139
+ {
140
+ await MainApp . FrameReachedManaged ( null , urlBase ) ;
141
+ }
142
+ }
143
+
130
144
class BlazorFirstUI : BlazorAppStartMeasurement
131
145
{
132
146
public override string Name => "Blazor First UI" ;
@@ -155,14 +169,14 @@ public override async Task RunStepAsync()
155
169
abstract class BrowserAppStartMeasurement : BenchTask . Measurement
156
170
{
157
171
protected readonly string urlBase = "browser-template/" ;
158
- protected readonly string framePage = "" ;
172
+ protected virtual string FramePage => "" ;
159
173
160
174
public override async Task < bool > IsEnabled ( )
161
175
{
162
176
using var client = new HttpClient ( ) ;
163
177
try
164
178
{
165
- var url = $ "{ MainApp . Origin ( ) } /{ urlBase } { framePage } ";
179
+ var url = $ "{ MainApp . Origin ( ) } /{ urlBase } { FramePage } ";
166
180
await client . GetStringAsync ( url ) ;
167
181
}
168
182
catch
@@ -175,7 +189,7 @@ public override async Task<bool> IsEnabled()
175
189
176
190
public override Task BeforeBatch ( )
177
191
{
178
- MainApp . SetFramePage ( framePage ) ;
192
+ MainApp . SetFramePage ( FramePage ) ;
179
193
180
194
return Task . CompletedTask ;
181
195
}
@@ -205,6 +219,19 @@ public override async Task RunStepAsync()
205
219
}
206
220
}
207
221
222
+ class BrowserReachManagedSnapshot : BrowserAppStartMeasurement
223
+ {
224
+ public override string Name => "Browser Reach managed snapshot" ;
225
+ public override int InitialSamples => 3 ;
226
+ public override bool HasRunStepAsync => true ;
227
+ protected override string FramePage => "?memorySnapshot=true" ;
228
+
229
+ public override async Task RunStepAsync ( )
230
+ {
231
+ await MainApp . FrameReachedManaged ( null , urlBase ) ;
232
+ }
233
+ }
234
+
208
235
class BrowserReachManagedCold : BrowserAppStartMeasurement
209
236
{
210
237
public override string Name => "Browser Reach managed cold" ;
0 commit comments