java - Java 中的规范文件路径 - 优化问题?

标签 java optimization

我的文件结构有一个指向目录/home/me/myDir ->/some/other/dir 的符号链接(symbolic link)。 此链接由另一个进程更新,并通知我的进程。收到通知后,我尝试获取新的规范路径:

public static String getPath()
{
   File file = new File("/home/me/myDir");
   if(file.exists())
   {
      try
      {
         String canonical = file.getCanonicalPath();
         return canonical;
      }
      catch ...
   }

问题是在链接更改后(我已经验证它更改)它需要 3-5 次调用上述 getPath() 方法才能在返回先前路径之前实际获取新路径。我唯一能想到的是java可能正在优化这个方法并返回旧路径。非常感谢任何想法或见解。

最佳答案

尝试禁用 Java 的规范化缓存。这可以通过将系统属性 sun.io.useCanonCachessun.io.useCanonPrefixCache 设置为 false 来完成。

默认情况下,规范文件名会缓存 30 秒(从源代码中读取 here)。

关于java - Java 中的规范文件路径 - 优化问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7479198/

相关文章:

Java 在字符串中查找 URL 并创建 HTML 链接标记

java - 为什么 Jetty 启动时会建立很多连接?

c++ - 编译器可以将对常量参数的引用优化为常量值吗?

javascript - 如何从普通的 JavaScript 页面重定向到 Angular 6(微型网站到 Angular 6)?

c++ - 转换 C++ 层次结构以使用静态多态性

带有@PreAuthorize 注解的java.lang.NoSuchMethodError

java - 是否有任何 "portable"Java SQL 包?

java - 使用 Java 在 Android Studio 中从 Google Geocoding API 获取经度和纬度值

sql - Oracle:较小结果集的性能较差?

python - scipy.optimize 非线性约束