[ 
https://issues.apache.org/jira/browse/LOG4J2-2921?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matt Sicker updated LOG4J2-2921:
--------------------------------
    Description: 
One area to improve the execution time of our builds is to [enable parallel 
test 
execution|https://junit.org/junit5/docs/current/user-guide/#writing-tests-parallel-execution]
 for all tests that can support that. Parallel tests are run in multiple 
threads on the same JVM rather than in forked JVMs (our current configuration). 
Thus, any tests that don't rely on JVM-global state (e.g., does not use 
environment variables, system properties, changing the default locale, shares 
an output file, etc.) should be able to support parallel test execution. 
Considering the amount of overhead introduced by JVM forks for every test, I'd 
hypothesize that this change could shave off at least 5-10 minutes from the 
total build time.

JUnit 5 provides the ResourceLock annotation which can be used to create 
generic locks (similar to ReadWriteLock in Java) for various resources. It 
defines some default ones like for setting the locale, system properties, 
system out, system error, and the timezone. Any other shared resources outside 
those contexts could likely use custom string values for the annotation.

  was:
One area to improve the execution time of our builds is to [enable parallel 
test 
execution|https://junit.org/junit5/docs/current/user-guide/#writing-tests-parallel-execution]
 for all tests that can support that. Parallel tests are run in multiple 
threads on the same JVM rather than in forked JVMs (our current configuration). 
Thus, any tests that don't rely on JVM-global state (e.g., does not use 
environment variables, system properties, changing the default locale, shares 
an output file, etc.) should be able to support parallel test execution. 
Considering the amount of overhead introduced by JVM forks for every test, I'd 
hypothesize that this change could shave off at least 5-10 minutes from the 
total build time.

Tests that cannot be run in parallel should be configured to run in their own 
phase using the existing forked-JVM settings.


> Enable parallel test execution for compatible tests
> ---------------------------------------------------
>
>                 Key: LOG4J2-2921
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2921
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: Build, Tests
>            Reporter: Matt Sicker
>            Assignee: Matt Sicker
>            Priority: Major
>
> One area to improve the execution time of our builds is to [enable parallel 
> test 
> execution|https://junit.org/junit5/docs/current/user-guide/#writing-tests-parallel-execution]
>  for all tests that can support that. Parallel tests are run in multiple 
> threads on the same JVM rather than in forked JVMs (our current 
> configuration). Thus, any tests that don't rely on JVM-global state (e.g., 
> does not use environment variables, system properties, changing the default 
> locale, shares an output file, etc.) should be able to support parallel test 
> execution. Considering the amount of overhead introduced by JVM forks for 
> every test, I'd hypothesize that this change could shave off at least 5-10 
> minutes from the total build time.
> JUnit 5 provides the ResourceLock annotation which can be used to create 
> generic locks (similar to ReadWriteLock in Java) for various resources. It 
> defines some default ones like for setting the locale, system properties, 
> system out, system error, and the timezone. Any other shared resources 
> outside those contexts could likely use custom string values for the 
> annotation.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to