-
Notifications
You must be signed in to change notification settings - Fork 36
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
Improve compile time #211
Comments
These tests should be done on windows and linux |
Should try to make a reproducible benchmark to keep track of this, I feel like the compile time has improved with rustc versions |
A lot of the time comes from llvm, and most of it seems to be serde, I wonder if there's a neat way to avoid this, perhaps making json the only supported serialization/deserialization unless something else is wanted, thus skipping serde |
Maybe miniserde or serde-lite could help? miniserde doesn't have all the features we're using currently but serde-lite could maybe be interesting, but doesn't either have all the features we use |
Removing a single module in helix makes quite a difference, I wonder if there's something bad we're doing that can be fixed by forcing the compiler to not inline or to actually inline |
Maybe modules could be en-/disabled one-by-one? I think it's rarely the case that you need every helix/eventsub/... module. |
That sounds very easy, could possibly have multiple scopes, and with the new feature where cargo tell you that an item is behind a cfg, quite discoverable
that's a lot of feature flags though :3 |
"Take serde. If one package enables the derive feature then packages that don't need it, like serde_json or toml, can't build until all of the proc-macro machinery is built." So you could also split out the derive feature and pull in |
the problem is not serde or serde_derive, the problem is the code it generates @simonsan, but we could definitely switch to using serde_derive to make compilation more parallel. Related serde-rs/serde#2584 (comment) edit: having trouble decoupling serde/derive and serde_derive in |
Compilation with some features makes the crate take ages to compile. Need to figure out why, and try to mitigate it.
Experiments need to be done to figure out what is taking all the time, I suspect codegen is a big timewaste.
Related to #203 and #204
The text was updated successfully, but these errors were encountered: