当前位置: 首页 > 面试题库 >

打开的文件句柄过多

郑宜民
2023-03-14
问题内容

我正在开发一个巨大的旧版Java应用程序,其中包含许多手写内容,如今您可以让一个框架来处理。

我现在面临的问题是,我们的Solaris
Server上的文件句柄用尽了。我想知道跟踪打开文件句柄的最佳方法是什么?在哪里查看,什么会导致打开的文件句柄用尽?

我不能在Solaris下调试应用程序,只能在Windows开发环境上调试。分析Windows下的打开文件句柄是否甚至合理?


问题答案:

我发现用于追踪未关闭文件句柄的一件好事是FindBugs:

http://findbugs.sourceforge.net/

它检查许多事情,但是最有用的方法之一是资源打开/关闭操作。这是一个在您的源代码上运行的静态分析程序,也可以作为eclipse插件使用。



 类似资料:
  • 问题内容: 如果您读取整个文件时,文件句柄是否一直打开直到脚本退出?有没有更简洁的方法来读取整个文件? 问题答案: 这个问题的答案在某种程度上取决于特定的Python实现。 要了解所有内容,请特别注意实际对象。在您的代码中,该对象仅在表达式中被提及一次,并且在调用返回后立即变得不可访问。 这意味着文件对象是垃圾。剩下的唯一问题是“垃圾收集器何时收集文件对象?”。 在使用引用计数器的CPython中

  • 问题内容: 我正在使用JAI读取Java中的Tiff文件。使用此代码: 在使用Java 7的一个盒子上工作正常,但在使用Java 8的其他盒子上工作正常,请执行以下操作: 问题答案: 我的理论是,垃圾回收正在启动并完成一些本不该垃圾回收的工作。很奇怪。替换为: 问题似乎消失了。我的猜测是因为不会过早收集,因为它的句柄仍在局部变量范围内。可能还有其他JAI方法也可以做到这一点,只要确保在输入流上保留

  • 对于来自Android应用程序的所有网络流量,我们都使用retrofit/okhttp3。到目前为止,一切似乎都进行得相当顺利。 然而,我们现在偶尔会出现应用程序/进程用完文件句柄的情况。 null null 如何防止OkHttp创建太多的文件句柄?

  • 问题内容: 如果指向文件同时获得,在Linux上打开文件句柄会发生什么: 移开->文件句柄保持有效吗? 删除->这是否导致EBADF,指示无效的文件句柄? 替换为新文件->文件是否处理指向该新文件的操作? 替换为指向新文件的硬链接->我的文件可以“跟随”此链接吗? 由指向新文件的软链接代替->我的文件句柄现在是否命中了该软链接文件? 为什么问这样的问题:我正在使用热插拔硬件(例如USB设备等)。可

  • 函数名称:关闭文件句柄 函数功能:关闭文件句柄 函数方法 io.close() 函数用例 file,msg = io.open("/mnt/sdcard/kazhu.txt") if file then dialog("打开成功",5000) file:close() else dialog("打开失败,失败原因:"..msg,5000) end

  • 问题内容: 创建容器时出现该错误消息。 但是我找不到有关该错误的任何信息。(我看到了https://github.com/docker/libcontainer/issues/211,但是那不是同样的问题。)有人知道吗? 谢谢。 问题答案: 默认的打开文件数限制为1024。可以通过两种方式增加它: 使用参数运行容器: 使用mode 运行容器并执行。 您可以在此处找到更多信息。