Skip to content

Commit 248f8cf

Browse files
committed
Perform changes based on SurveyHero survey form
1 parent e5de8a3 commit 248f8cf

File tree

1 file changed

+53
-50
lines changed

1 file changed

+53
-50
lines changed

surveys/micro/2025-06-compiler-performance.md

Lines changed: 53 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,30 @@
11
# Survey questions
22

3-
The goal of this survey is to figure out how much do Rust users struggle with compilation times and which compilation workflows are the most relevant for them. We would like to use this data so that we can focus the efforts of Rust compiler contributors on the areas of compilation performance that matter the most to our users.
3+
The goal of this survey is to figure out how much do Rust users struggle with compilation times and which development workflows are the most relevant for them. We would like to use this data so that we can focus the efforts of Rust compiler contributors on the areas of compilation performance that matter the most to our users.
44

5-
Your feedback is much appreciated. This survey is fully anonymous. The Rust survey team will go through the answers and release a summary on the Rust blog after the survey is complete.
5+
Your feedback is much appreciated!
66

7-
## User classification
7+
This survey is fully anonymous. The Rust survey team will go through the answers and release a summary on the Rust blog after the survey is complete.
88

99
### Do you use Rust?
1010

1111
Type: select one
1212

1313
- Yes, I use Rust [`NEXT`](#do-you-code-in-rust-at-a-company)
1414
- No, I don't currently use Rust, but I have in the past [`NEXT`](#were-long-compilation-times-the-primary-reason-why-you-stopped-using-rust)
15-
- No, I have never used Rust [`NEXT`](#other)
15+
- No, I have never used Rust [`NEXT`](#is-there-anything-else-related-to-rust-compiler-performance-that-you-would-like-to-tell-us)
1616

1717
### Were long compilation times the primary reason why you stopped using Rust?
1818

1919
Type: select one
2020

2121
- Yes
2222
- No, but it was one of the reasons why I stopped using Rust
23-
- No
23+
- No [`NEXT`](#is-there-anything-else-related-to-rust-compiler-performance-that-you-would-like-to-tell-us)
24+
25+
Please answer the following questions based on how did you use Rust before you stopped using it.
26+
27+
## User classification
2428

2529
### Which operating systems do you use regularly for Rust development?
2630

@@ -47,9 +51,9 @@ Type: select one (optional)
4751
- Yes (501-5000 employees)
4852
- Yes (more than 5000 employees)
4953

50-
## Workflows
54+
## Development workflows
5155

52-
### Which builds system do you use to build Rust code?
56+
### Which build systems do you use to build Rust code?
5357

5458
Type: select all that apply (optional)
5559

@@ -63,7 +67,7 @@ Type: select all that apply (optional)
6367
Type: select all that apply (optional)
6468

6569
- On my local computer
66-
- On CI infrastructure
70+
- On CI (Continuous Integration) infrastructure
6771
- On a remote or cloud server
6872
- Other (open response)
6973

@@ -83,41 +87,16 @@ Workflows:
8387
- CI (Continuous Integration) builds
8488
- Docker builds
8589

86-
Priority:
90+
Options:
8791

8892
- Big problem for me
8993
- Could be improved, but does not limit me
9094
- Not an issue for me at all
95+
- I do not use this workflow
9196

9297
### Do you have any other Rust development workflows that you would like to mention?
9398

94-
Type: open response (optional)
95-
96-
### How do you primarily examine compilation errors in your code?
97-
98-
Type: select all that apply (optional)
99-
100-
- Using code editor (e.g. inline annotations)
101-
- Using terminal commands (e.g. `cargo check`)
102-
- Other (open response)
103-
104-
### If you use Cargo, how often do you use the following commands after each change to Rust code?
105-
106-
Type: matrix (optional)
107-
108-
Commands:
109-
110-
- `cargo check`
111-
- `cargo clippy`
112-
- `cargo test`
113-
- `cargo run` / `cargo build`
114-
115-
Frequency:
116-
117-
- After every code change
118-
- Only after I have resolved other issues
119-
- Only after I am done (e.g. before creating a commit or pushing to a remote branch)
120-
- Never
99+
Type: free form (optional)
121100

122101
### How long do you need to wait for the compiler to rebuild your code after making a change?
123102

@@ -143,18 +122,44 @@ Commands:
143122

144123
- Waiting for a rebuild after making a small change
145124
- Waiting for CI workflows that build Rust code
146-
- `cargo check` and `cargo build` not sharing compilation cache
147-
- `cargo check` and `cargo clippy` not sharing compilation cache
148125
- Waiting for an IDE to show me inline error/warning annotations
149-
- `cargo` rebuilding everything from scratch and I do not understand why
150-
- `cargo` and my IDE blocking each other
126+
- *cargo* and my IDE blocking each other
127+
- *cargo check* and *cargo build* not sharing compilation cache
128+
- *cargo check* and *cargo clippy* not sharing compilation cache
129+
- *cargo* rebuilding everything from scratch and I do not understand why
151130

152-
Priority:
131+
Options:
153132

154133
- Big problem for me
155134
- Could be improved, but does not limit me
156135
- Not an issue for me at all
157136

137+
### How do you primarily examine compilation errors in your code?
138+
139+
Type: select all that apply (optional)
140+
141+
- Using code editor (e.g. inline annotations)
142+
- Using terminal commands (e.g. *cargo check*)
143+
- Other (open response)
144+
145+
### If you use Cargo, how often do you use the following commands after each change to Rust code?
146+
147+
Type: matrix (optional)
148+
149+
Commands:
150+
151+
- *cargo check*
152+
- *cargo clippy*
153+
- *cargo test*
154+
- *cargo run* / *cargo build*
155+
156+
Frequency:
157+
158+
- After every code change
159+
- Only after I have resolved other issues
160+
- Only after I am done (e.g. before committing code)
161+
- Never
162+
158163
## Workarounds
159164

160165
### Have you used any of the following mechanisms to improve compilation performance?
@@ -172,7 +177,7 @@ Type: select all that apply (optional)
172177
- Split crates into smaller crates
173178
- Reduce the amount of dependencies
174179
- Disable default Cargo features of dependencies
175-
- Create a Cargo feature that makes certain dependencies (or their features) optional
180+
- Create a Cargo feature to opt into building certain dependencies (or their features)
176181
- Reduce usage of procedural macros
177182
- Reduce usage of generic code (e.g. by converting it to `dyn Trait` instead)
178183
- Merge integration tests into a single binary
@@ -190,18 +195,18 @@ Type: select all that apply (optional)
190195

191196
### Do you use a nightly compiler to achieve better compilation performance?
192197

193-
Please answer `Yes` only if you use the `nightly` toolchain primarily for achieving better compilation performance, not for other reasons.
198+
Please answer `Yes` only if you use the *nightly* toolchain primarily for achieving better compilation performance, not for other reasons.
194199

195200
Type: select one (optional)
196201

197202
- Yes
198-
- No [`NEXT`](#debugging)
203+
- No [`NEXT`](#debugging-and-profiling)
199204

200205
### How does using the nightly compiler help you achieve better compilation performance?
201206

202-
Type: open answer (optional)
207+
Type: free form (optional)
203208

204-
## Debugging
209+
## Debugging and profiling
205210

206211
### How often do you use a debugger to debug your Rust code?
207212

@@ -223,7 +228,7 @@ Type: select one (optional)
223228

224229
### Do you require unoptimized builds to have debuginfo by default?
225230

226-
`cargo build` with the default `dev` profile produces full debug information (debuginfo) by default. This enables debugging using a debugger, but it can also make compilation times slower (by varying amounts, e.g. 30%). In order to improve compilation performance, this debuginfo could be lowered e.g. to `line-tables-only` by default, which still enables rich backtrace information, but does not allow proper debugging.
231+
*cargo build* with the default `dev` profile produces full debug information (debuginfo) by default. This enables debugging using a debugger, but it can also make compilation times slower (by varying amounts, e.g. 30%). In order to improve compilation performance, this debuginfo could be lowered e.g. to `line-tables-only` by default, which still enables rich backtrace information, but does not allow proper debugging.
227232

228233
Type: select one (optional)
229234

@@ -259,8 +264,6 @@ Type: select one (optional)
259264
- 33-64 GiB
260265
- More than 64 GiB
261266

262-
## Other
263-
264267
### Is there anything else related to Rust compiler performance that you would like to tell us?
265268

266-
Type: free text (optional)
269+
Type: free form (optional)

0 commit comments

Comments
 (0)