@@ -68,39 +68,44 @@ fn generate_profiling_data<S: SerializationSink>(
68
68
ExpectedEvent :: new( "QueryWithArg" , "AQueryWithArg" , & [ "some_arg" ] ) ,
69
69
] ;
70
70
71
- let threads: Vec < _ > = ( 0 .. num_threads) . map ( |thread_id| {
72
- let event_ids = event_ids. clone ( ) ;
73
- let profiler = profiler. clone ( ) ;
74
- let expected_events_templates = expected_events_templates. clone ( ) ;
75
-
76
- std:: thread:: spawn ( move || {
77
- let mut expected_events = Vec :: new ( ) ;
78
-
79
- for i in 0 ..num_stacks {
80
- // Allocate some invocation stacks
81
-
82
- pseudo_invocation (
83
- & profiler,
84
- i,
85
- thread_id as u32 ,
86
- 4 ,
87
- & event_ids[ ..] ,
88
- & expected_events_templates,
89
- & mut expected_events,
90
- ) ;
91
- }
92
-
93
- expected_events
71
+ let threads: Vec < _ > = ( 0 ..num_threads)
72
+ . map ( |thread_id| {
73
+ let event_ids = event_ids. clone ( ) ;
74
+ let profiler = profiler. clone ( ) ;
75
+ let expected_events_templates = expected_events_templates. clone ( ) ;
76
+
77
+ std:: thread:: spawn ( move || {
78
+ let mut expected_events = Vec :: new ( ) ;
79
+
80
+ for i in 0 ..num_stacks {
81
+ // Allocate some invocation stacks
82
+
83
+ pseudo_invocation (
84
+ & profiler,
85
+ i,
86
+ thread_id as u32 ,
87
+ 4 ,
88
+ & event_ids[ ..] ,
89
+ & expected_events_templates,
90
+ & mut expected_events,
91
+ ) ;
92
+ }
93
+
94
+ expected_events
95
+ } )
94
96
} )
95
- } ) . collect ( ) ;
97
+ . collect ( ) ;
96
98
97
- let expected_events: Vec < _ > = threads. into_iter ( ) . flat_map ( |t| t. join ( ) . unwrap ( ) ) . collect ( ) ;
99
+ let expected_events: Vec < _ > = threads
100
+ . into_iter ( )
101
+ . flat_map ( |t| t. join ( ) . unwrap ( ) )
102
+ . collect ( ) ;
98
103
99
104
// An example of allocating the string contents of an event id that has
100
105
// already been used
101
106
profiler. map_virtual_to_concrete_string (
102
107
event_id_virtual. to_string_id ( ) ,
103
- profiler. alloc_string ( "SomeQuery" )
108
+ profiler. alloc_string ( "SomeQuery" ) ,
104
109
) ;
105
110
106
111
expected_events
@@ -140,7 +145,10 @@ fn check_profiling_data(
140
145
let expected_events_per_thread = collect_events_per_thread ( expected_events) ;
141
146
142
147
let thread_ids: Vec < _ > = actual_events_per_thread. keys ( ) . collect ( ) ;
143
- assert_eq ! ( thread_ids, expected_events_per_thread. keys( ) . collect:: <Vec <_>>( ) ) ;
148
+ assert_eq ! (
149
+ thread_ids,
150
+ expected_events_per_thread. keys( ) . collect:: <Vec <_>>( )
151
+ ) ;
144
152
145
153
for thread_id in thread_ids {
146
154
let actual_events = & actual_events_per_thread[ thread_id] ;
@@ -164,22 +172,34 @@ fn check_profiling_data(
164
172
assert_eq ! ( count, num_expected_events) ;
165
173
}
166
174
167
- fn collect_events_per_thread < ' a > ( events : & mut dyn Iterator < Item = Event < ' a > > ) -> FxHashMap < u32 , Vec < Event < ' a > > > {
175
+ fn collect_events_per_thread < ' a > (
176
+ events : & mut dyn Iterator < Item = Event < ' a > > ,
177
+ ) -> FxHashMap < u32 , Vec < Event < ' a > > > {
168
178
let mut per_thread: FxHashMap < _ , _ > = Default :: default ( ) ;
169
179
170
180
for event in events {
171
- per_thread. entry ( event. thread_id ) . or_insert ( Vec :: new ( ) ) . push ( event) ;
181
+ per_thread
182
+ . entry ( event. thread_id )
183
+ . or_insert ( Vec :: new ( ) )
184
+ . push ( event) ;
172
185
}
173
186
174
187
per_thread
175
188
}
176
189
177
- pub fn run_serialization_bench < S : SerializationSink > ( file_name_stem : & str , num_events : usize , num_threads : usize ) {
190
+ pub fn run_serialization_bench < S : SerializationSink > (
191
+ file_name_stem : & str ,
192
+ num_events : usize ,
193
+ num_threads : usize ,
194
+ ) {
178
195
let filestem = mk_filestem ( file_name_stem) ;
179
196
generate_profiling_data :: < S > ( & filestem, num_events, num_threads) ;
180
197
}
181
198
182
- pub fn run_end_to_end_serialization_test < S : SerializationSink > ( file_name_stem : & str , num_threads : usize ) {
199
+ pub fn run_end_to_end_serialization_test < S : SerializationSink > (
200
+ file_name_stem : & str ,
201
+ num_threads : usize ,
202
+ ) {
183
203
let filestem = mk_filestem ( file_name_stem) ;
184
204
let expected_events = generate_profiling_data :: < S > ( & filestem, 10_000 , num_threads) ;
185
205
process_profiling_data ( & filestem, & expected_events) ;
0 commit comments