Auto merge of #143525 - Shourya742:2025-07-06-add-profiler, r=Kobzol · rust-lang/rust@a9f2aad (original) (raw)
`@@ -8,6 +8,7 @@
`
8
8
`use std::fs::{self, OpenOptions};
`
9
9
`use std::io::{self, BufRead, BufReader, IsTerminal, Write};
`
10
10
`use std::str::FromStr;
`
``
11
`+
use std::time::Instant;
`
11
12
`use std::{env, process};
`
12
13
``
13
14
`use bootstrap::{
`
`@@ -17,11 +18,17 @@ use bootstrap::{
`
17
18
`#[cfg(feature = "tracing")]
`
18
19
`use tracing::instrument;
`
19
20
``
``
21
`+
fn is_bootstrap_profiling_enabled() -> bool {
`
``
22
`+
env::var("BOOTSTRAP_PROFILE").is_ok_and(|v| v == "1")
`
``
23
`+
}
`
``
24
+
20
25
`#[cfg_attr(feature = "tracing", instrument(level = "trace", name = "main"))]
`
21
26
`fn main() {
`
22
27
`#[cfg(feature = "tracing")]
`
23
28
`let _guard = setup_tracing();
`
24
29
``
``
30
`+
let start_time = Instant::now();
`
``
31
+
25
32
`let args = env::args().skip(1).collect::<Vec<_>>();
`
26
33
``
27
34
`if Flags::try_parse_verbose_help(&args) {
`
`@@ -96,7 +103,8 @@ fn main() {
`
96
103
`let out_dir = config.out.clone();
`
97
104
``
98
105
`debug!("creating new build based on config");
`
99
``
`-
Build::new(config).build();
`
``
106
`+
let mut build = Build::new(config);
`
``
107
`+
build.build();
`
100
108
``
101
109
`if suggest_setup {
`
102
110
`` println!("WARNING: you have not made a bootstrap.toml");
``
`@@ -147,6 +155,10 @@ fn main() {
`
147
155
`t!(file.write_all(lines.join("\n").as_bytes()));
`
148
156
`}
`
149
157
`}
`
``
158
+
``
159
`+
if is_bootstrap_profiling_enabled() {
`
``
160
`+
build.report_summary(start_time);
`
``
161
`+
}
`
150
162
`}
`
151
163
``
152
164
`fn check_version(config: &Config) -> Option {
`
`@@ -226,7 +238,7 @@ fn setup_tracing() -> impl Drop {
`
226
238
`let mut chrome_layer = tracing_chrome::ChromeLayerBuilder::new().include_args(true);
`
227
239
``
228
240
`// Writes the Chrome profile to trace-.json if enabled
`
229
``
`-
if !env::var("BOOTSTRAP_PROFILE").is_ok_and(|v| v == "1") {
`
``
241
`+
if !is_bootstrap_profiling_enabled() {
`
230
242
` chrome_layer = chrome_layer.writer(io::sink());
`
231
243
`}
`
232
244
``