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

Cache Gradle service response for all Gradle versions #74

Open
lacasseio opened this issue Jan 19, 2022 · 6 comments
Open

Cache Gradle service response for all Gradle versions #74

lacasseio opened this issue Jan 19, 2022 · 6 comments
Assignees
Labels
Milestone

Comments

@lacasseio
Copy link
Member

We cache the first query to the service but we don't cache across Gradle invocation. We can see a performance hit on the build on every configuration. We should try to see if we can use the Gradle's project.getResources().getText().fromUri(...) which support caching.

@lacasseio lacasseio added this to the 1.6.3 milestone Jan 19, 2022
@lacasseio
Copy link
Member Author

We added an experimental flag to do some performance comparison (see #80).

@lacasseio lacasseio self-assigned this Jan 20, 2022
@lacasseio lacasseio modified the milestones: 1.6.3, 1.6.4, 1.6.5 Jan 20, 2022
@lacasseio
Copy link
Member Author

The change we did in #80 is not enough. At least we can now see the network activity in the build scan:

Screen Shot 2022-01-20 at 9 23 31 PM

However, the query time is about 0.3s on each configuration. We should try to avoid network access completely. Maybe configuration cache could solve this issue.

@lacasseio
Copy link
Member Author

Another experimentation for performance: #84

@lacasseio
Copy link
Member Author

Regardless of what we use there are about .5 seconds just for head check. I think we should try to differ the checks to as late as possible. At least it would be when we actually need to task. The unfortunate side effect is one could declare coverage for Gradle 9.42 and it would create the tasks without failing. Users would only see the failure during execution time which is fair.

@lacasseio
Copy link
Member Author

The text resource is annoying as it's unavailable from the Settings plugin. Regardless, we should use the service and deal with Settings plugin as a different issue.

@lacasseio
Copy link
Member Author

Regarding the performance issue, we could solve it by creating the task using a rule and when we detect an active IntelliJ sync is active. The main issue is resolving Gradle versions because we need to know the latest/minimum, and minor Gradle versions.

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

No branches or pull requests

1 participant