RFR: 8268906: gc/g1/mixedgc/TestOldGenCollectionUsage.java assumes that GCs take 1ms minimum

Thomas Schatzl tschatzl at openjdk.java.net
Fri Jun 18 17:52:48 UTC 2021


Hi,

  can I have reviews for this change to a test that incorrectly assumed that GCs take 1ms minimum?

At the end of the test, MXBeans' `getCollectionTime()` is compared against one taken two gcs earlier. If these two gcs are very short, `getCollectionTime()` returns the same value as before because its resolution is 1ms.

The `getCollectionTime()` documentation states:

> Returns the approximate accumulated collection elapsed time in milliseconds. This method returns -1 if the collection elapsed time is undefined for this collector.
> 
> The Java virtual machine implementation may use a high resolution timer to measure the elapsed time. **This method may return the same value even if the collection count has been incremented if the collection elapsed time is very short.**
> 

Which is what the test tested

Testing: test does not fail any more after some VM hack so that `getCollectionTime()` returns very low values.

Thanks,
  Thomas

-------------

Commit messages:
 - Initial commit

Changes: https://git.openjdk.java.net/jdk/pull/4531/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=4531&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8268906
  Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod
  Patch: https://git.openjdk.java.net/jdk/pull/4531.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/4531/head:pull/4531

PR: https://git.openjdk.java.net/jdk/pull/4531


More information about the hotspot-gc-dev mailing list