RFR: 8304020: Speed up test/jdk/java/util/zip/ZipFile/TestTooManyEntries.java and clarify its purpose [v5]

Eirik Bjorsnos duke at openjdk.org
Sun Mar 12 17:14:43 UTC 2023


> Please review this PR which speeds up TestTooManyEntries and clarifies its purpose:
> 
> - The name 'TestTooManyEntries' does not clearly convey the purpose of the test. What is tested is the validation that the total CEN size fits in a Java byte array. Suggested rename: CenSizeTooLarge
> - The test creates DEFLATED entries which incurs zlib costs and File Data / Data Descriptors for no additional benefit. We can use STORED instead.
> - By creating a single LocalDateTime and setting it with `ZipEntry.setTimeLocal`, we can avoid repeated time zone calculations. 
> - The name of entries is generated by calling UUID.randomUUID, we could use simple counter instead.
> - The produced file is unnecessarily large. We know how large a CEN entry is, let's take advantage of that to create a file with the minimal size.
> - The summary and comments of the test can be improved to help explain the purpose of the test and how we reach the limit being tested.
> 
> These speedups reduced the runtime from 4 min 17 sec to 1 min 54 sec on my Macbook Pro. The produced ZIP size was reduced from 5.7 GB to 3.5 GB.

Eirik Bjorsnos has updated the pull request incrementally with one additional commit since the last revision:

  Spell 'specified' correctly

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/12991/files
  - new: https://git.openjdk.org/jdk/pull/12991/files/0ac4b652..8969de16

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=12991&range=04
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=12991&range=03-04

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

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


More information about the core-libs-dev mailing list