@@ -28,9 +28,11 @@ public AppStartTask()
2828 new BlazorReachManaged ( ) ,
2929 new BlazorFirstUI ( ) ,
3030 new BlazorReachManagedCold ( ) ,
31+ new BlazorReachManagedSnapshot ( ) ,
3132 new BrowserPageShow ( ) ,
3233 new BrowserReachManaged ( ) ,
3334 new BrowserReachManagedCold ( ) ,
35+ new BrowserReachManagedSnapshot ( ) ,
3436 } ;
3537 }
3638
@@ -77,14 +79,14 @@ public override async Task RunStepAsync()
7779 abstract class BlazorAppStartMeasurement : BenchTask . Measurement
7880 {
7981 protected readonly string urlBase = "blazor-template/" ;
80- protected readonly string framePage = "" ;
82+ protected virtual string FramePage => "" ;
8183
8284 public override async Task < bool > IsEnabled ( )
8385 {
8486 using var client = new HttpClient ( ) ;
8587 try
8688 {
87- var url = $ "{ MainApp . Origin ( ) } /{ urlBase } { framePage } ";
89+ var url = $ "{ MainApp . Origin ( ) } /{ urlBase } { FramePage } ";
8890 await client . GetStringAsync ( url ) ;
8991 }
9092 catch
@@ -97,7 +99,7 @@ public override async Task<bool> IsEnabled()
9799
98100 public override Task BeforeBatch ( )
99101 {
100- MainApp . SetFramePage ( framePage ) ;
102+ MainApp . SetFramePage ( FramePage ) ;
101103
102104 return Task . CompletedTask ;
103105 }
@@ -127,6 +129,18 @@ public override async Task RunStepAsync()
127129 }
128130 }
129131
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+
130144 class BlazorFirstUI : BlazorAppStartMeasurement
131145 {
132146 public override string Name => "Blazor First UI" ;
@@ -155,14 +169,14 @@ public override async Task RunStepAsync()
155169 abstract class BrowserAppStartMeasurement : BenchTask . Measurement
156170 {
157171 protected readonly string urlBase = "browser-template/" ;
158- protected readonly string framePage = "" ;
172+ protected virtual string FramePage => "" ;
159173
160174 public override async Task < bool > IsEnabled ( )
161175 {
162176 using var client = new HttpClient ( ) ;
163177 try
164178 {
165- var url = $ "{ MainApp . Origin ( ) } /{ urlBase } { framePage } ";
179+ var url = $ "{ MainApp . Origin ( ) } /{ urlBase } { FramePage } ";
166180 await client . GetStringAsync ( url ) ;
167181 }
168182 catch
@@ -175,7 +189,7 @@ public override async Task<bool> IsEnabled()
175189
176190 public override Task BeforeBatch ( )
177191 {
178- MainApp . SetFramePage ( framePage ) ;
192+ MainApp . SetFramePage ( FramePage ) ;
179193
180194 return Task . CompletedTask ;
181195 }
@@ -205,6 +219,19 @@ public override async Task RunStepAsync()
205219 }
206220 }
207221
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+
208235 class BrowserReachManagedCold : BrowserAppStartMeasurement
209236 {
210237 public override string Name => "Browser Reach managed cold" ;
0 commit comments