-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Optimize formatter with hot cache #8135
Labels
formatter
Related to the formatter
Comments
Fixing the sort here. |
charliermarsh
added a commit
that referenced
this issue
Oct 24, 2023
## Summary Related to #8135. If we're not printing a `--diff`, or a summary of `--check` changes, we can avoid sorting the list of results. Further, when sorting, we only need to sort a small subset of the entries, in the common case (i.e., in general, it's much more likely that a file is formatted than not). ## Test Plan Local benchmarks suggest a 5-10% speedup on the cached behavior: ``` ❯ hyperfine --warmup 3 "./target/release/ruff format ../airflow" "./target/release/sort format ../airflow" Benchmark 1: ./target/release/ruff format ../airflow Time (mean ± σ): 70.3 ms ± 5.2 ms [User: 52.1 ms, System: 59.0 ms] Range (min … max): 68.3 ms … 101.7 ms 42 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet PC without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Benchmark 2: ./target/release/sort format ../airflow Time (mean ± σ): 66.0 ms ± 1.4 ms [User: 48.3 ms, System: 58.4 ms] Range (min … max): 64.7 ms … 71.8 ms 44 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet PC without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Summary './target/release/sort format ../airflow' ran 1.07 ± 0.08 times faster than './target/release/ruff format ../airflow' ```
We did a bunch of stuff here. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
There's a lot of optimization opportunities with the formatter with a hot cache (the example is apache airflow with rayon removed):
Instructions for generating the flamegraph:
cargo install flamegraph
flamegraph -F 9999 -- target/release-debug/ruff format ../airflow/
(Set your cpu to powersave for more samples)The text was updated successfully, but these errors were encountered: