Skip to content

gc: Verify performance numbers #13058

Open
@ehuss

Description

@ehuss

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 with sync_size). This has to du 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.

Metadata

Metadata

Assignees

Labels

A-cachingArea: caching of dependencies, repositories, and build artifactsS-acceptedStatus: Issue or feature is accepted, and has a team member available to help mentor or reviewZ-gcNightly: garbage collection

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions