Skip to content
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 GRADLE build Performance #1072

Merged
merged 2 commits into from
Oct 26, 2021
Merged

Conversation

ChenZhangg
Copy link
Contributor

Parallel test execution maxParallelForks, running multiple test cases in parallel is useful and helpful when there are several CPU cores.

According to Process forking options, Gradle will run all tests in a single forked VM by default. This can be problematic if there are a lot of tests or some very memory-hungry ones.
one option is to fork a new test VM after a certain number of tests have run. So our recommendation is to configure "forkEvery" and we give a specific value of 100

Disable report generation, Gradle will automatically create test reports by default which will slowing down the overall build. So it's better to disable the test reports while we don't need it

=====================
If there are any inappropriate modifications in this PR, please give me a reply and I will change them.

@kurahaupo
Copy link
Collaborator

Thanks for that.

In general I agree with your observations and concerns. However you mention "memory hungry" tests as a justification for forking; surely it would be better to run those on their own, not in parallel with anything else?

@kurahaupo
Copy link
Collaborator

What is the benefit of

    tasks.withType(Test).configureEach {
        maxParallelForks = 4
    }

    tasks.withType(Test).configureEach {
        forkEvery = 100
    }

over

    tasks.withType(Test).configureEach {
        maxParallelForks = 4
        forkEvery = 100
    }

merge those changes in one task
@ChenZhangg
Copy link
Contributor Author

What is the benefit of

    tasks.withType(Test).configureEach {
        maxParallelForks = 4
    }

    tasks.withType(Test).configureEach {
        forkEvery = 100
    }

over

    tasks.withType(Test).configureEach {
        maxParallelForks = 4
        forkEvery = 100
    }

We have merged those changes into one task

@kurahaupo kurahaupo merged commit 2a6fad7 into jberkel:master Oct 26, 2021
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