File tree 1 file changed +47
-0
lines changed
src/doc/unstable-book/src/compiler-flags
1 file changed +47
-0
lines changed Original file line number Diff line number Diff line change
1
+ # ` self-profile `
2
+
3
+ --------------------
4
+
5
+ The ` -Zself-profile ` compiler flag enables rustc's internal profiler.
6
+ When enabled, the compiler will output three binary files in the specified directory (or the current working directory if no directory is specified).
7
+ These files can be analyzed by using the tools in the [ ` measureme ` ] repository.
8
+
9
+ To control the data recorded in the trace files, use the ` -Zself-profile-events ` flag.
10
+
11
+ For example:
12
+
13
+ First, run a compilation session and provide the ` -Zself-profile ` flag:
14
+
15
+ ``` console
16
+ $ rustc --crate-name foo -Zself-profile`
17
+ ```
18
+
19
+ This will generate three files in the working directory such as:
20
+
21
+ - ` foo-1234.events `
22
+ - ` foo-1234.string_data `
23
+ - ` foo-1234.string_index `
24
+
25
+ Where ` foo ` is the name of the crate and ` 1234 ` is the process id of the rustc process.
26
+
27
+ To get a summary of where the compiler is spending its time:
28
+
29
+ ``` console
30
+ $ ../measureme/target/release/summarize summarize foo-1234
31
+ ```
32
+
33
+ To generate a flamegraph of the same data:
34
+
35
+ ``` console
36
+ $ ../measureme/target/release/inferno foo-1234
37
+ ```
38
+
39
+ To dump the event data in a Chromium-profiler compatible format:
40
+
41
+ ``` console
42
+ $ ../measureme/target/release/crox foo-1234
43
+ ```
44
+
45
+ For more information, consult the [ ` measureme ` ] documentation.
46
+
47
+ [ `measureme` ] : https://github.com/rust-lang/measureme.git
You can’t perform that action at this time.
0 commit comments