-
Enhancement
-
Resolution: Fixed
-
P3
-
None
-
b03
The file canonicalization cache was added back in JDK 1.4.2 in order to improve startup time.
The cache has long-standing correctness issues (JDK-7066948, for example). For this reason, it has been desired to disable the cache by default, but the increase to startup time was undesirable.
Recent JDK releases have removed usages of the cache, in particular from FilePermission (JDK-8164705 in JDK 9). This reduced usage of the canonicalization cache should also reduce the startup effect of disabling the cache by default. Measurements support this. Previous measurements showed the startup effect of disabling the cache on Linux to be 3-6%, depending on the specific benchmark. The same comparison performed last month now show no startup change on Linux.
The file canonicalization cache can still be enabled by setting the "sun.io.useCanonCaches" system property. This is merely a change to the default value.
The cache has long-standing correctness issues (
Recent JDK releases have removed usages of the cache, in particular from FilePermission (
The file canonicalization cache can still be enabled by setting the "sun.io.useCanonCaches" system property. This is merely a change to the default value.
- relates to
-
JDK-8164705 Remove pathname canonicalization from FilePermission
-
- Closed
-
-
JDK-7066948 non-deterministic canonicalization cache behavior under ${java.home}
-
- Closed
-
-
JDK-8209383 Performance regression in Startup3-Jetty-* in Windows needs investgation
-
- Closed
-
-
JDK-8258036 Significant performance regression in File.getCanonicalFile, getCanonicalPath
-
- Closed
-
-
JDK-8209837 Avoid initializing ExpiringCache during bootstrap
-
- Resolved
-
-
JDK-8300977 Retire java.io.ExpiringCache
-
- Resolved
-
(1 relates to)