`
smartgear
  • 浏览: 7197 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

推荐一款好用的JAVA IO分析工具JPicus

    博客分类:
  • java
阅读更多

去年用过一个很好用的工具,一直没有记录下来,现在分享给大家。这个工具的用途就是,可以查看,Java process都打开了那些文件,是由哪个thread打开的。

我碰到的问题是这样的,jboss使用log4j做日志系统,有个功能叫file rolling,作用是按照时间或者按照规定文件大小自动备份旧的日志,然后创建新的日志。前一阵子遇到一个问题,jboss的log文件rolling发生了异常,备份文件没有生成。查看了一下log4j的code,rolling时的做法是将旧的logfile重命名。初步分析原因是有其他的线程打开日志文件,导致文件重命名失败。使用process explorer查看, 发现jboss的java process持有多个server.log的文件句柄,证实了我的猜想。但是问题是无法判断出究竟是哪里的code打开了server.log. 经过google找到了一个非常好用的java io 分析工具JPicus. JPicus分为server和client两部分. server part 使用java的instrument技术实现,可以收集java进程中对文件的使用情况。client part是一个eclipse的插件。使用方法类似一般JvisualVM 之类的profiler, 打开一个connection 到jvm, 然后take 一个snapshot. 就可以获取java process持有的每一个文件句柄的信息。可以看到是哪一个线程打开了该句柄,以及该线程的call stack. 这样问题就一目了然了。具体的使用方法比较简单大家可以参考JPicus网站上的教程,我这里就不赘述了。下面贴一个运行起来的UI截图:

jpicus截图

 

安装时遇到了一些麻烦,下面是一些提醒:

1. JPicus对eclipse版本有要求,我用的3.6.1使用正常,同事用3.2遇到了一些问题。

2. JPicus网站上的client端安装链接有点问题,在eclipse中直接输入那个链接无法进行安装。我刚才又去download页面试了一下,现在连download agent jar的页面都打不开了,也不知道是被盾了,还是挂掉了。所幸的都是我之前download的jar还留着。agent jar , UI plug-in. 本来你应该直接从JPicus的update站点安装客户端的,但是现在JPicus的update站点有问题。我们可以通过自建一个update站点来解决这个问题。使用任意的web server(我用的IIS)把UI plug-in那个zip解压到你站点下的某一个目录下就可以了。在eclipse中选help->install new software->add repository 添加你的update站点的url就可以安装了,贴个图。

 

 

一点抱怨:

国内对SAP的develper network访问非常不好,总有莫名奇妙的问题。这个很好的工具也没有广泛的流传开,安装起来费很大力气。不知道有没有功能类似的开源工具呢,如果有的话,我一定会迅速抛弃JPicus的。

 

 

 

  • 大小: 132.3 KB
  • 大小: 51.4 KB
分享到:
评论

相关推荐

    Java IO 工具类大全

    本篇文章将全面解析Java IO工具类,帮助你理解并掌握其在实际开发中的应用。 一、Java IO基础 Java IO体系主要由流(Stream)组成,分为字节流和字符流两大类,分别处理字节数据和字符数据。字节流包括InputStream...

    java IO教程,java IO教程,java IO教程

    java IO教程,java IO教程,java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程,java IO教程,java IO教程,java IO...

    java io 实例工具(源码)

    封装好的java io实例,简单,可做学习参考,也可用于工具调用!

    java IO.chm

    《Java IO.chm》是一个关于Java输入/输出(IO)技术的压缩文件,其中包含了丰富的资料,适合开发者深入理解和学习Java IO系统。这篇详细的总结将围绕Java IO体系结构、核心类、流的概念、缓冲区、转换流、字符集、...

    Java IO应届生培训讲义

    Java IO应届生培训讲义是一份面向刚毕业的大学生进行Java IO相关知识的培训资料,它涵盖了Java IO的基础知识、不同的IO模型以及Java中的BIO、NIO和AIO高级IO类库。下面详细解释这些知识点: 1. 用户空间和内核空间 ...

    java io 智能工具

    java io 智能工具

    深入分析javaIO的工作机制.doc

    ### 深入分析Java IO的工作机制 #### 一、引言 在现代软件开发中,输入/输出(Input/Output,简称IO)是至关重要的一个环节,它不仅关乎着程序与外部世界的交互,更是影响应用程序性能的关键因素之一。随着大数据...

    java io 结构图

    总之,Java IO系统为开发者提供了强大而灵活的工具来处理输入输出操作,无论是简单的文本文件,还是复杂的网络通信,都可以通过这个框架高效地实现。深入理解这个结构图对于提升Java编程能力至关重要。

    java io流学习笔记1

    总之,Java IO流是Java编程中不可或缺的一部分,它提供了丰富的类和方法来处理各种输入输出任务。通过深入学习和理解IO流,开发者可以更好地掌握数据的读取、写入和传输,提升程序的效率和功能。同时,熟悉相关工具...

    Java IO_NIO

    Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的基础框架,它提供了丰富的类库,使得程序能够与各种设备、文件、网络进行数据交互。然而,传统的IO模型在处理大量并发连接时表现出效率较低的问题,...

    常用java IO操作以及用jxl读写excel 工具源代码

    本工具结合了Java IO操作和JXL库,实现了读取Excel文件并进行数据处理的功能,主要应用于国际化键值的替换。 首先,Java IO操作包括了基本的文件操作,如创建、读取、写入和删除文件。在Java中,我们通常使用`File`...

    Java IO 与 装饰模式

    Java IO库提供了一整套类来支持各种类型的输入输出操作,包括文件、网络、内存等。而装饰模式是一种结构型设计模式,它允许在不修改已有对象的基础上,通过添加新的行为或职责来扩展对象的功能。在Java IO系统中,...

    Java IO处理类的汇总

    最后,Java IO提供了许多实用工具类,如PrintStream方便输出调试信息,Files类提供了一系列静态方法处理文件操作,而CharArrayReader和CharArrayWriter则在内存中操作字符数组。 总之,Java IO处理类涵盖了从文件...

    Java_IO完全总结

    Java IO系统主要包括两个包:`java.io`和`java.nio`(New IO),其中`java.io`提供了一系列基于流的I/O操作接口与实现类,而`java.nio`则提供了更高效的数据访问方式,如通道和缓冲区等。 Java IO系统的设计原则之...

    深入分析JavaIO的工作机制.doc

    ### 深入分析Java IO的工作机制 #### Java IO类库的基本架构 Java IO系统是进行文件读写、网络通信等基本操作的核心组件。在Java中,IO操作主要通过`java.io`包中的类实现。根据不同的数据处理需求,这些类可以...

    java io 与java nio区别

    在Java IO模型中,当一个线程发起一个IO操作请求时,该线程会一直阻塞等待直到IO操作完成。这意味着如果一个线程正在执行一个读取操作,那么在此期间该线程无法执行其他任何任务,必须等到读取操作完成才能继续下...

    JavaIO流详解归纳.pdf

    了解 Java 的 IO 类,IO 流是 Java 中的基础概念之一。Java 的 IO 类分为两大类:Input/Output 和 Reader/Writer。Input/Output 流是字节流, Reader/Writer 是字符流。Input/Output 流是 Java 中的基础流,所有的...

    java小项目练习IO实现

    在Java编程领域,IO(Input/Output)技术是不可或缺的一部分,尤其在处理数据持久化、文件操作、网络通信等方面发挥着重要作用。在这个“java小项目练习IO实现”中,我们将探讨如何利用Java的IO流来实现本地数据的...

Global site tag (gtag.js) - Google Analytics