> The manual test Cipher/DES/PerformanceTest.java fails with 
> ArithmeticException due to potential division by zero. The issue arises when 
> calculating the elapsed time using end - start, which could result in zero 
> milliseconds if start and end are identical due to the high speed of 
> execution. This leads to a division error in the following code snippet:
> 
> 
> start = System.currentTimeMillis();
> end = System.currentTimeMillis();
> int speed = (int)((data.length * count)/(end - start));
> 
> This issue is easily reproducible on platforms where 
> System.currentTimeMillis() has low granularity, such as many versions of 
> Windows, end and start can be equal when obtaining System.currentTimeMillis() 
> if the test runs very quickly.
> 
> The fix is to use System.nanoTime() instead, which is designed to measure 
> elapsed time with very high precision. This value is then converted to 
> microseconds so the tests can properly calculate the throughput (bytes 
> processed per microsecond) for the report. Example output:
> 
> 
> Algorithm                      DataSize Rounds Bytes/microsec
> DES/ECB/NoPadding               1024    100       66
> DES/ECB/NoPadding               1024    1000      50
> DES/ECB/NoPadding               8192    100       70
> DES/ECB/NoPadding               8192    1000      70
> Average:                                            64

Fernando Guallini has updated the pull request incrementally with one 
additional commit since the last revision:

  byter per microsec

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/20135/files
  - new: https://git.openjdk.org/jdk/pull/20135/files/03bae4c6..246c67d7

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=20135&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=20135&range=01-02

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/20135.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/20135/head:pull/20135

PR: https://git.openjdk.org/jdk/pull/20135

Reply via email to