You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
parallel should control parallel compilation of Kotlin files AND the rule execution.
Not the CommonThreadPool should be used but the specified ExecutorService in ProcessingSettings. This could lead to performance improvements when embedding detekt.
Multi module parallel gradle builds may become faster when using Gradle's --parallel=true and detekt's --parallel=false
Current Behavior
parallel just controls if kotlinc should parse multiple files in parallel or not using Java's list.parallelStream. Rules are always executed in parallel.
This has some downsides:
When using Gradle's --parallel many detekt tasks may run in the same time making the CommonThreadPool starve. Runs take like 6-10 seconds on CI for 1.5k lines of code.
Context
Parallel gradle detekt task execution can starve the CommonThreadPool.
Also #1513.
Expected Behavior
CommonThreadPoolshould be used but the specifiedExecutorServiceinProcessingSettings. This could lead to performance improvements when embedding detekt.--parallel=trueand detekt's--parallel=falseCurrent Behavior
paralleljust controls ifkotlincshould parse multiple files in parallel or not using Java'slist.parallelStream. Rules are always executed in parallel.This has some downsides:
--parallelmany detekt tasks may run in the same time making theCommonThreadPoolstarve. Runs take like 6-10 seconds on CI for 1.5k lines of code.Context
Parallel gradle detekt task execution can starve the
CommonThreadPool.Also #1513.