@@ -220,7 +220,7 @@ impl SelfProfilerRef {
220
220
let message_and_format =
221
221
self . print_verbose_generic_activities . map ( |format| ( event_label. to_owned ( ) , format) ) ;
222
222
223
- VerboseTimingGuard :: start ( message_and_format, self . generic_activity ( event_label) , false )
223
+ VerboseTimingGuard :: start ( message_and_format, self . generic_activity ( event_label) )
224
224
}
225
225
226
226
/// Like `verbose_generic_activity`, but with an extra arg.
@@ -239,21 +239,9 @@ impl SelfProfilerRef {
239
239
VerboseTimingGuard :: start (
240
240
message_and_format,
241
241
self . generic_activity_with_arg ( event_label, event_arg) ,
242
- false ,
243
242
)
244
243
}
245
244
246
- /// Like `verbose_generic_activity`, but `event_label` must be unique for a rustc session.
247
- pub fn unique_verbose_generic_activity (
248
- & self ,
249
- event_label : & ' static str ,
250
- ) -> VerboseTimingGuard < ' _ > {
251
- let message_and_format =
252
- self . print_verbose_generic_activities . map ( |format| ( event_label. to_owned ( ) , format) ) ;
253
-
254
- VerboseTimingGuard :: start ( message_and_format, self . generic_activity ( event_label) , true )
255
- }
256
-
257
245
/// Start profiling a generic activity. Profiling continues until the
258
246
/// TimingGuard returned from this call is dropped.
259
247
#[ inline( always) ]
@@ -729,22 +717,31 @@ impl<'a> TimingGuard<'a> {
729
717
}
730
718
}
731
719
720
+ struct VerboseInfo {
721
+ start_time : Instant ,
722
+ start_rss : Option < usize > ,
723
+ message : String ,
724
+ format : TimePassesFormat ,
725
+ }
726
+
732
727
#[ must_use]
733
728
pub struct VerboseTimingGuard < ' a > {
734
- start_and_message : Option < ( Instant , Option < usize > , String , TimePassesFormat , bool ) > ,
729
+ info : Option < VerboseInfo > ,
735
730
_guard : TimingGuard < ' a > ,
736
731
}
737
732
738
733
impl < ' a > VerboseTimingGuard < ' a > {
739
734
pub fn start (
740
735
message_and_format : Option < ( String , TimePassesFormat ) > ,
741
736
_guard : TimingGuard < ' a > ,
742
- unique : bool ,
743
737
) -> Self {
744
738
VerboseTimingGuard {
745
739
_guard,
746
- start_and_message : message_and_format. map ( |( msg, format) | {
747
- ( Instant :: now ( ) , get_resident_set_size ( ) , msg, format, unique)
740
+ info : message_and_format. map ( |( message, format) | VerboseInfo {
741
+ start_time : Instant :: now ( ) ,
742
+ start_rss : get_resident_set_size ( ) ,
743
+ message,
744
+ format,
748
745
} ) ,
749
746
}
750
747
}
@@ -758,10 +755,10 @@ impl<'a> VerboseTimingGuard<'a> {
758
755
759
756
impl Drop for VerboseTimingGuard < ' _ > {
760
757
fn drop ( & mut self ) {
761
- if let Some ( ( start_time , start_rss , ref message , format , unique ) ) = self . start_and_message {
758
+ if let Some ( info ) = & self . info {
762
759
let end_rss = get_resident_set_size ( ) ;
763
- let dur = start_time. elapsed ( ) ;
764
- print_time_passes_entry ( message, dur, start_rss, end_rss, format, unique ) ;
760
+ let dur = info . start_time . elapsed ( ) ;
761
+ print_time_passes_entry ( & info . message , dur, info . start_rss , end_rss, info . format ) ;
765
762
}
766
763
}
767
764
}
@@ -772,18 +769,19 @@ pub fn print_time_passes_entry(
772
769
start_rss : Option < usize > ,
773
770
end_rss : Option < usize > ,
774
771
format : TimePassesFormat ,
775
- unique : bool ,
776
772
) {
777
- if format == TimePassesFormat :: Json {
778
- let json = json ! ( {
779
- "pass" : what,
780
- "time" : dur. as_secs_f64( ) ,
781
- "rss_start" : start_rss,
782
- "rss_end" : end_rss,
783
- "unique" : unique,
784
- } ) ;
785
- eprintln ! ( "time: {}" , json. to_string( ) ) ;
786
- return ;
773
+ match format {
774
+ TimePassesFormat :: Json => {
775
+ let json = json ! ( {
776
+ "pass" : what,
777
+ "time" : dur. as_secs_f64( ) ,
778
+ "rss_start" : start_rss,
779
+ "rss_end" : end_rss,
780
+ } ) ;
781
+ eprintln ! ( "time: {}" , json. to_string( ) ) ;
782
+ return ;
783
+ }
784
+ TimePassesFormat :: Text => ( ) ,
787
785
}
788
786
789
787
// Print the pass if its duration is greater than 5 ms, or it changed the
0 commit comments