# HG changeset patch # Parent b524acd3f9e76bcefc01d8df203b3ea62101a3e1 diff -r b524acd3f9e7 src/java.base/share/classes/java/util/zip/ZipFile.java --- a/src/java.base/share/classes/java/util/zip/ZipFile.java Wed Apr 22 18:50:58 2020 +0200 +++ b/src/java.base/share/classes/java/util/zip/ZipFile.java Wed Apr 22 20:02:48 2020 +0200 @@ -336,6 +336,7 @@ private ZipEntry getEntry(String name, Function func) { Objects.requireNonNull(name, "name"); ZipEntry entry = null; + long before = System.nanoTime(); synchronized (this) { ensureOpen(); byte[] bname = zc.getBytes(name); @@ -352,6 +353,11 @@ } } } + if (entry == null) { + PerfCounter.getZipFileMisses().addElapsedTimeFrom(before); + } else { + PerfCounter.getZipFileHits().addElapsedTimeFrom(before); + } return entry; } diff -r b524acd3f9e7 src/java.base/share/classes/jdk/internal/perf/PerfCounter.java --- a/src/java.base/share/classes/jdk/internal/perf/PerfCounter.java Wed Apr 22 18:50:58 2020 +0200 +++ b/src/java.base/share/classes/jdk/internal/perf/PerfCounter.java Wed Apr 22 20:02:48 2020 +0200 @@ -131,6 +131,8 @@ static final PerfCounter rcbt = newPerfCounter("sun.urlClassLoader.readClassBytesTime"); static final PerfCounter zfc = newPerfCounter("sun.zip.zipFiles"); static final PerfCounter zfot = newPerfCounter("sun.zip.zipFile.openTime"); + static final PerfCounter zfh = newPerfCounter("sun.zip.zipFile.hits"); + static final PerfCounter zfm = newPerfCounter("sun.zip.zipFile.misses"); } /** @@ -178,4 +180,11 @@ return CoreCounters.zfot; } + public static PerfCounter getZipFileHits() { + return CoreCounters.zfh; + } + public static PerfCounter getZipFileMisses() { + return CoreCounters.zfm; + } + }