@@ -172,18 +172,32 @@ function createPerformanceSession(
172172
173173 if ( DUMP ) {
174174 if ( label === 'prove' ) {
175- dumpProve ( perfRegressionJson , programName , methodName ! , info , time ) ;
175+ dumpMethodTime ( perfRegressionJson , programName , methodName ! , info , time , 'prove' ) ;
176176 } else {
177- dumpVerify ( perfRegressionJson , programName , methodName ! , info , time ) ;
177+ dumpMethodTime ( perfRegressionJson , programName , methodName ! , info , time , 'verify' ) ;
178178 }
179179 return ;
180180 }
181181
182182 if ( CHECK ) {
183183 if ( label === 'prove' ) {
184- checkProve ( perfRegressionJson , programName , methodName ! , info . digest , time ) ;
184+ checkMethodTime (
185+ perfRegressionJson ,
186+ programName ,
187+ methodName ! ,
188+ info . digest ,
189+ time ,
190+ 'prove'
191+ ) ;
185192 } else {
186- checkVerify ( perfRegressionJson , programName , methodName ! , info . digest , time ) ;
193+ checkMethodTime (
194+ perfRegressionJson ,
195+ programName ,
196+ methodName ! ,
197+ info . digest ,
198+ time ,
199+ 'verify'
200+ ) ;
187201 }
188202 return ;
189203 }
@@ -235,48 +249,26 @@ function dumpCompile(
235249 fs . writeFileSync ( FILE_PATH , JSON . stringify ( perfRegressionJson , null , 2 ) ) ;
236250}
237251
238- function dumpProve (
252+ function dumpMethodTime (
239253 perfRegressionJson : Record < string , PerfRegressionEntry > ,
240254 programName : string ,
241255 methodName : string ,
242256 info : ConstraintSystemSummary ,
243- time : number
257+ time : number ,
258+ label : 'prove' | 'verify'
244259) {
245260 const prev = perfRegressionJson [ programName ] ;
246261 const merged : PerfRegressionEntry = prev
247262 ? { ...prev , methods : { ...prev . methods } }
248263 : { methods : { } } ;
249264
250- merged . methods [ methodName ] = {
251- rows : info . rows ,
252- digest : info . digest ,
253- // keep any existing verifyTime if present
254- verifyTime : merged . methods [ methodName ] ?. verifyTime ,
255- proveTime : time ,
256- } ;
257-
258- perfRegressionJson [ programName ] = merged ;
259- fs . writeFileSync ( FILE_PATH , JSON . stringify ( perfRegressionJson , null , 2 ) ) ;
260- }
261-
262- function dumpVerify (
263- perfRegressionJson : Record < string , PerfRegressionEntry > ,
264- programName : string ,
265- methodName : string ,
266- info : ConstraintSystemSummary ,
267- time : number
268- ) {
269- const prev = perfRegressionJson [ programName ] ;
270- const merged : PerfRegressionEntry = prev
271- ? { ...prev , methods : { ...prev . methods } }
272- : { methods : { } } ;
265+ const prevMethod = merged . methods [ methodName ] ?? { } ;
273266
274267 merged . methods [ methodName ] = {
275268 rows : info . rows ,
276269 digest : info . digest ,
277- // keep any existing proveTime if present
278- proveTime : merged . methods [ methodName ] ?. proveTime ,
279- verifyTime : time ,
270+ proveTime : label === 'prove' ? time : prevMethod . proveTime ,
271+ verifyTime : label === 'verify' ? time : prevMethod . verifyTime ,
280272 } ;
281273
282274 perfRegressionJson [ programName ] = merged ;
@@ -298,34 +290,18 @@ function checkCompile(
298290 } ) ;
299291}
300292
301- function checkProve (
302- perfRegressionJson : Record < string , PerfRegressionEntry > ,
303- programName : string ,
304- methodName : string ,
305- digest : string ,
306- actualTime : number
307- ) {
308- checkAgainstBaseline ( {
309- perfRegressionJson,
310- programName,
311- label : 'prove' ,
312- methodName,
313- digest,
314- actualTime,
315- } ) ;
316- }
317-
318- function checkVerify (
293+ function checkMethodTime (
319294 perfRegressionJson : Record < string , PerfRegressionEntry > ,
320295 programName : string ,
321296 methodName : string ,
322297 digest : string ,
323- actualTime : number
298+ actualTime : number ,
299+ label : 'prove' | 'verify'
324300) {
325301 checkAgainstBaseline ( {
326302 perfRegressionJson,
327303 programName,
328- label : 'verify' ,
304+ label,
329305 methodName,
330306 digest,
331307 actualTime,
@@ -423,7 +399,7 @@ function checkAgainstBaseline(params: {
423399 }
424400
425401 const expected = label === 'prove' ? baseMethod . proveTime : baseMethod . verifyTime ;
426- const labelPretty = label === 'prove' ? 'Prove' : 'Verify' ;
402+ const labelPretty = label . charAt ( 0 ) . toUpperCase ( ) ;
427403 if ( expected == null ) {
428404 throw new Error (
429405 `No baseline ${ label } Time for ${ programName } .${ methodName } . Run --dump (${ label } ) to set it.`
0 commit comments