@@ -11,6 +11,10 @@ pub enum Action {
1111 Read ,
1212 Compute ,
1313 Write ,
14+ #[ cfg( feature = "os_input" ) ]
15+ FetchWitnessesFirstPass ,
16+ #[ cfg( feature = "os_input" ) ]
17+ FetchWitnessesSecondPass ,
1418}
1519
1620#[ derive( Default ) ]
@@ -19,6 +23,10 @@ pub struct BlockTimers {
1923 pub read_timer : Option < Instant > ,
2024 pub compute_timer : Option < Instant > ,
2125 pub writer_timer : Option < Instant > ,
26+ #[ cfg( feature = "os_input" ) ]
27+ pub fetch_witnesses_first_pass_timer : Option < Instant > ,
28+ #[ cfg( feature = "os_input" ) ]
29+ pub fetch_witnesses_second_pass_timer : Option < Instant > ,
2230}
2331
2432impl BlockTimers {
@@ -28,6 +36,10 @@ impl BlockTimers {
2836 Action :: Read => & mut self . read_timer ,
2937 Action :: Compute => & mut self . compute_timer ,
3038 Action :: Write => & mut self . writer_timer ,
39+ #[ cfg( feature = "os_input" ) ]
40+ Action :: FetchWitnessesFirstPass => & mut self . fetch_witnesses_first_pass_timer ,
41+ #[ cfg( feature = "os_input" ) ]
42+ Action :: FetchWitnessesSecondPass => & mut self . fetch_witnesses_second_pass_timer ,
3143 }
3244 }
3345
@@ -62,7 +74,13 @@ pub trait MeasurementsTrait {
6274 entries_count : usize ,
6375 ) -> Result < f64 , MeasurementNotStartedError > ;
6476
65- fn set_number_of_modifications ( & mut self , block_modifications_counts : BlockModificationsCounts ) ;
77+ fn set_number_of_modifications (
78+ & mut self ,
79+ storage_tries : usize ,
80+ contracts_trie : usize ,
81+ classes_trie : usize ,
82+ emptied_storage_leaves : usize ,
83+ ) ;
6684}
6785
6886pub struct NoMeasurements ;
@@ -80,7 +98,10 @@ impl MeasurementsTrait for NoMeasurements {
8098
8199 fn set_number_of_modifications (
82100 & mut self ,
83- _block_modifications_counts : BlockModificationsCounts ,
101+ _storage_tries : usize ,
102+ _contracts_trie : usize ,
103+ _classes_trie : usize ,
104+ _emptied_storage_leaves : usize ,
84105 ) {
85106 }
86107}
@@ -91,6 +112,12 @@ pub struct BlockDurations {
91112 pub read : f64 , // Duration of a read phase (seconds).
92113 pub compute : f64 , // Duration of a computation phase (seconds).
93114 pub write : f64 , // Duration of a write phase (seconds).
115+ #[ cfg( feature = "os_input" ) ]
116+ // Duration of fetching witnesses w.r.t the old root (seconds).
117+ pub fetch_witnesses_first_pass : f64 ,
118+ #[ cfg( feature = "os_input" ) ]
119+ // Duration of fetching witnesses w.r.t the new root (seconds).
120+ pub fetch_witnesses_second_pass : f64 ,
94121}
95122
96123#[ derive( Default , Clone , Debug , PartialEq , Eq ) ]
@@ -99,6 +126,9 @@ pub struct BlockModificationsCounts {
99126 pub contracts_trie : usize ,
100127 pub classes_trie : usize ,
101128 pub emptied_storage_leaves : usize ,
129+ #[ cfg( feature = "os_input" ) ]
130+ // Number of witnesses fetched in the first pass (pre-commit).
131+ pub witnesses : usize ,
102132}
103133
104134impl BlockModificationsCounts {
@@ -137,6 +167,15 @@ impl BlockMeasurement {
137167 Action :: EndToEnd => {
138168 self . durations . block = duration_in_seconds;
139169 }
170+ #[ cfg( feature = "os_input" ) ]
171+ Action :: FetchWitnessesFirstPass => {
172+ self . durations . fetch_witnesses_first_pass = duration_in_seconds;
173+ self . modifications_counts . witnesses = entries_count;
174+ }
175+ #[ cfg( feature = "os_input" ) ]
176+ Action :: FetchWitnessesSecondPass => {
177+ self . durations . fetch_witnesses_second_pass = duration_in_seconds;
178+ }
140179 }
141180 }
142181}
@@ -164,8 +203,14 @@ impl MeasurementsTrait for SingleBlockMeasurements {
164203
165204 fn set_number_of_modifications (
166205 & mut self ,
167- block_modifications_counts : BlockModificationsCounts ,
206+ storage_tries : usize ,
207+ contracts_trie : usize ,
208+ classes_trie : usize ,
209+ emptied_storage_leaves : usize ,
168210 ) {
169- self . block_measurement . modifications_counts = block_modifications_counts;
211+ self . block_measurement . modifications_counts . storage_tries = storage_tries;
212+ self . block_measurement . modifications_counts . contracts_trie = contracts_trie;
213+ self . block_measurement . modifications_counts . classes_trie = classes_trie;
214+ self . block_measurement . modifications_counts . emptied_storage_leaves = emptied_storage_leaves;
170215 }
171216}
0 commit comments