Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Slow windows CI operations #292

Open
tbillington opened this issue Sep 3, 2024 · 3 comments
Open

Slow windows CI operations #292

tbillington opened this issue Sep 3, 2024 · 3 comments
Labels
enhancement New feature or request question Further information is requested

Comments

@tbillington
Copy link

When making builds it seems Windows is significantly slower than Linux, more than doubling the time of the workflow.

This is unfortunate as Windows is the primary build target for most games.

For context, my project is not that big, and I'm using less than default optimisation levels to try and help it.

[profile.release]
opt-level = 2
panic = 'abort'
image

One idea I saw is to use a special drive on windows which reduces filesystem overhead. In the uv project they saw builds go from 4m to 1-2m~ which is huge.

astral-sh/uv#3522

@TheBevyFlock TheBevyFlock deleted a comment Sep 3, 2024
@benfrankel
Copy link
Collaborator

benfrankel commented Sep 3, 2024

Yeah, Windows is currently the bottleneck in the release workflow. I usually see about 15 minutes for Windows and like 8 minutes for Linux though. Are you using a private runner?

@tbillington
Copy link
Author

tbillington commented Sep 3, 2024

Default runner.

Here's --timings with 2 jobs (to emulate 2 core default runner). It completes in 6.5m on my laptop so multiply these numbers by 5 to get closer to what they take in CI.

There's nothing that particularly stands out in the build graph, just a lot of things in bevy take time 🤷 and double the time in windows for some reason 😂

image
1. 	bevy_render v0.14.1 	55.7s 	51.2s (92%) 	multi_threaded, png
2. 	bevy_core_pipeline v0.14.1 	33.4s 	31.6s (94%) 	
3. 	bevy_ui v0.14.1 	31.9s 	29.9s (94%) 	bevy_text
4. 	bevy_sprite v0.14.1 	28.8s 	27.7s (96%) 	
5. 	kingdom-sim v0.1.0 bin "kingdom-sim" 	24.5s 		
6. 	naga v0.20.0 	20.4s 	17.1s (84%) 	compact, default, hexf-parse, hlsl-out, msl-out, unicode-xid, wgsl-in, wgsl-out
7. 	bevy_picking_core v0.20.0 	20.1s 	19.2s (96%) 	
8. 	bevy_asset v0.14.1 	18.9s 	16.9s (89%) 	asset_processor, multi_threaded
9. 	bindgen v0.69.4 	16.1s 	14.4s (90%) 	runtime
10. 	bevy_text v0.14.1 	15.8s 	15.3s (96%) 	default_font
11. 	egui v0.28.1 	14.4s 	12.4s (87%) 	bytemuck, default, default_fonts
12. 	bevy_input v0.14.1 	14.1s 	13.1s (93%) 	bevy_reflect, default
13. 	bevy-inspector-egui v0.25.1 	13.6s 	12.6s (92%) 	bevy_render
14. 	bevy_math v0.14.1 	13.2s 	11.6s (88%) 	bevy_reflect, default, rand, serialize
15. 	bevy_gizmos v0.14.1 	13.2s 	12.3s (93%) 	bevy_sprite
16. 	syn v2.0.72 	13.1s 	11.3s (86%) 	clone-impls, default, derive, extra-traits, full, parsing, printing, proc-macro, visit-mut
17. 	wgpu v0.20.1 	12.7s 	12.1s (95%) 	dx12, fragile-send-sync-non-atomic-wasm, metal, naga, naga-ir, wgc, wgsl
18. 	bevy_ecs v0.14.1 	11.6s 	7.6s (66%) 	arrayvec, bevy_reflect, default, multi_threaded, serialize
19. 	bevy_reflect v0.14.1 	11.1s 	8.8s (80%) 	bevy, default, glam, smallvec, smol_str, uuid

@janhohenheim
Copy link
Member

This is a known issue when building Bevy on Windows in general. Maybe we could do cross-compilation?

@benfrankel benfrankel added enhancement New feature or request question Further information is requested labels Sep 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants