Can I please get a review for this change which improves the jarsigner tool's 
performance (especially) when dealing with large jar files? This addresses 
https://bugs.openjdk.org/browse/JDK-8302623.

As noted in the JBS issue, wrapping the target `FileOutputStream` with the 
`BufferedOutputStream` reduces the amount of write calls that happen on the 
file and has shown to improve the amount of time it takes to sign the jar files.

On a macOS M1, the numbers before and after this change are as follows (`time` 
command was used to get these numbers):


JDK 19, 3GB file: 144.52s user 19.79s system 98% cpu 2:46.80 total
JDK with this change, (same) 3GB file: 139.27s user 4.86s system 97% cpu 
2:27.41 total


JDK 19, 6GB file: 289.38s user 38.87s system 99% cpu 5:28.90 total
JDK with this change, (same) 6GB file: 279.69s user 9.93s system 99% cpu 
4:49.88 total 

No new tests have been added for this change. The current existing tests in 
`test/jdk/sun/security/tools/jarsigner` continue to pass locally. tier testing 
is currently in progress.

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

Commit messages:
 - 8302623: jarsigner - use BufferedOutputStream to improve performance while 
creating the signed jar

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

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

Reply via email to