RFR: 8304020: Speed up test/jdk/java/util/zip/ZipFile/TestTooManyEntries.java and clarify its purpose [v4]
Eirik Bjorsnos
duke at openjdk.org
Sun Mar 12 17:01:08 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 three additional commits since the last revision:
- Give test method a long, meaningful name
- Remove blank line
- Make CEN headers maximally large such that we need fewer of them and save memory
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/12991/files
- new: https://git.openjdk.org/jdk/pull/12991/files/2397cede..0ac4b652
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=12991&range=03
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=12991&range=02-03
Stats: 78 lines in 1 file changed: 65 ins; 1 del; 12 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