On Sun, 20 Apr 2025 13:01:30 GMT, Jason Zaugg <jza...@openjdk.org> wrote:

>> zipfs has a (undocumented) property "zipinfo-time" which was introduced in 
>> https://bugs.openjdk.org/browse/JDK-8150496 to help improve performance of 
>> the ZipFileSystem. When a ZipFileSystem is created with this property's 
>> value set to "false", then the implementation in ZipFileSystem, while 
>> constructing the entries from the ZIP file will skip reading the access time 
>> and the creation time of each ZIP entry from the entry's LOC header. This 
>> improves the performance of zipfs, since when reading the CEN, it no longer 
>> has to traverse to individual LOC headers to find the access time and 
>> creation time values of each entry.
>> 
>> Setting "zipinfo-time" = false, thus implies that the 
>> ZipFileAttributes.creationTime() and ZipFileAttributes.lastAccessTime() APIs 
>> may not return the right values when used against Path(s) corresponding to 
>> the ZIP entries in that FileSystem. Not all usages of zipfs require or use 
>> the creationTime()/lastAccessTime() APIs. Such usages can set "zipinfo-time" 
>> = false and benefit from improved performance.
>> 
>> com.sun.tools.javac.file.JavacFileManager$ArchiveContainer is one such place 
>> where when constructing the FileSystem, it could pass this property. This is 
>> especially useful since this part of the code in practice can be dealing 
>> with large number of jar files in the classpath and creating one zipfs 
>> FileSystem for each such JAR file.
>> 
>> It has been reported in the compiler-dev mailing list, that an experiment to 
>> set "zipinfo-time" = false in this part of the code has shown very 
>> noticeable performance improvements, especially on Windows, when dealing 
>> with large classpath. Details in the thread here 
>> https://mail.openjdk.org/pipermail/compiler-dev/2025-March/029529.html.
>
> Jason Zaugg has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Update copyright and remove part of comment

Hello Jason, I'll just run this once in our CI today to make sure nothing fails 
against latest master. I'll add a comment here once that's complete and you can 
then integrate it.

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

PR Comment: https://git.openjdk.org/jdk/pull/24176#issuecomment-2899711012

Reply via email to