RFR: 8265448: (zipfs): Reduce read contention in ZipFileSystem [v5]
Jason Zaugg
jzaugg at openjdk.java.net
Fri May 7 03:10:32 UTC 2021
> If the given Path represents a file, use the overload of read defined
> in FileChannel that accepts an explicit position and avoid serializing
> reads.
>
> Note: The underlying NIO implementation is not required to implement
> FileChannel.read(ByteBuffer, long) concurrently; Windows still appears
> to lock, as it returns true for NativeDispatcher.needsPositionLock.
>
>
> On MacOS X, the enclosed benchmark improves from:
>
>
> Benchmark Mode Cnt Score Error Units
> ZipFileSystemBenchmark.read avgt 10 75.311 ? 3.301 ms/op
>
>
> To:
>
>
> Benchmark Mode Cnt Score Error Units
> ZipFileSystemBenchmark.read avgt 10 12.520 ? 0.875 ms/op
Jason Zaugg has updated the pull request incrementally with one additional commit since the last revision:
[zipfs] Add missing check-failed exception to position/read test
This appears to have been omitted when this test was added.
To avoid false error reports, the condition must deal with the
edge case of zero-length entries, for which read will return -1.
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/3853/files
- new: https://git.openjdk.java.net/jdk/pull/3853/files/c9758c58..9106096e
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=3853&range=04
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=3853&range=03-04
Stats: 3 lines in 1 file changed: 2 ins; 0 del; 1 mod
Patch: https://git.openjdk.java.net/jdk/pull/3853.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/3853/head:pull/3853
PR: https://git.openjdk.java.net/jdk/pull/3853
More information about the nio-dev
mailing list