Open
Description
For the gc support implemented in #12634, I did a lot of performance testing, but I haven't recorded any final numbers to verify that the performance hit is acceptable. I'd like to collect data on a variety of systems under typical and extreme conditions to understand the impact for various commands. Things I'd like to record are:
- Automatic GC cleaning time hit relative to a "fresh" build (that is, a build of projects of various sizes where there are no
rustc
calls). - Cache usage recording time hit relative to a "fresh" build.
- Time spent in
cargo clean gc
when synchronizing out-of-sync files (essentially,sync_db_with_files
). For example, starting with a relatively large cache generated by older versions of cargo. This should be very fast (essentially scanning a few thousand files), but need to verify. - Time spent in
cargo clean gc
with a size option like--max-download-size
when synchronizing out-of-sync files (sync_db_with_files
withsync_size
). This has todu
over a potentially large number of files.
There are some benchmarks, but they are isolated and low-level. The examples above are targeted more towards the overall effect when integrated with the build code paths, or the cleaning code paths. We may want to consider extending the benchmarks if there are points that seem at risk.