Skip to content

Perform Input Modification Checks At the End of the Build #563

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

Merged
merged 1 commit into from
Mar 23, 2021

Conversation

CodaFi
Copy link
Contributor

@CodaFi CodaFi commented Mar 23, 2021

Also deduplicate them while we're at it. We don't need to ask each job for its input set, we just need to check the same set of files we recorded mod times for in the first place. This saves a quadratic amount of disk I/O and syscalls in the incremental and non-batch builds, which can be a huge wall time savings for large compiles.

In the incremental stress test, 15 seconds are just gone from total wall time. Total user time spent in stating files went from 7 seconds to 20 milliseconds!

@CodaFi CodaFi requested review from davidungar and owenv March 23, 2021 02:42
@CodaFi
Copy link
Contributor Author

CodaFi commented Mar 23, 2021

@swift-ci test

Copy link
Contributor

@owenv owenv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@owenv
Copy link
Contributor

owenv commented Mar 23, 2021

testInputModifiedDuringMultiJobBuild is failing because this is now only reporting one error for a two-job compile, which should be the expected behavior IMO

@CodaFi CodaFi force-pushed the lockbox branch 2 times, most recently from fc0021f to c5c71ce Compare March 23, 2021 03:04
Also deduplicate them while we're at it. We don't need to ask each job for its input set, we just need to check the same set of files we recorded mod times for in the first place. This saves a quadratic amount of disk I/O in the incremental and non-batch builds, which can be a huge wall time savings for large compiles.
@CodaFi
Copy link
Contributor Author

CodaFi commented Mar 23, 2021

@swift-ci test

@CodaFi
Copy link
Contributor Author

CodaFi commented Mar 23, 2021

@CodaFi CodaFi merged commit 8f4a93e into swiftlang:main Mar 23, 2021
@CodaFi CodaFi deleted the lockbox branch March 23, 2021 03:18
Copy link
Contributor

@davidungar davidungar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants