- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVA开源工具在LINUX上源码分析(详细说明配有图片).pdf
Java 开源工具在linux 上的源码分析
(详细说明配有图片)
目录索引
Java 开源工具在linux 上的源码分析(一):跟踪方式2
Java 开源工具在linux 上的源码分析(二):信号处理4
Java 开源工具在linux 上的源码分析(三):执行的线程9
Java 开源工具在linux 上的源码分析(四):safe point13
Java 开源工具在linux 上的源码分析(五):-F参数的bug19
Java 开源工具在linux 上的源码分析(六):符号表的读取22
1
Java 开源工具在linux 上的源码分析(一):跟踪方式
在我们常用的Jstack, Jmap 用于分析java 虚拟机的状态的工具,通过起另一个虚拟机通
过运行sun.tools 包下的java 文件,去跟踪另一个虚拟机的状态。
AD:
在我们常用的Jstack, Jmap 用于分析java 虚拟机的状态的工具,通过起另一个虚拟
机通过运行sun.tools 包下的java 文件,去跟踪另一个虚拟机的状态。
如果让你设计一个跟踪另一个进程的方法,你也通常会考虑这几种常用的方式。
第一种,就是通知被跟踪的进程,让进程执行相应的消息,同时对该消息做出反应。
第二种,就是通过内核的调用,直接能够访问进程的内存,堆栈情况,通过分析被跟踪
的进程的内存结构,从而知道当前被跟踪的进程的状态。
第一种方式
优势:
对调用者和被调用者只要达成简单的通讯协议,调用者无需知道被调用者的逻辑,结构,
只需要简单的发送命令的方式,被调用者能够接受到命令,并且对该命令进行回应就可以。
缺点:
如果被调用者当时的状态本来就不正常,或者繁忙,没办法对该命令做出响应,那这个
跟踪进程往往是在规定的等待时间里,无法返回正确的需要的信息。其次被调用者在分析的
过程中,有可能需要暂停进程中的其他的线程,而对被跟踪的进程有一定的影响。
第二种方式
优势:
通过内核的支持,访问被跟踪的内存,并作出快照,后台分析,很少影响被跟踪的进程。
缺点:
2
这种方式需要对被跟踪程的内存分配和使用非常的了解,无法解耦,而本身系统内核调
用也会出问题。
Java 工具类中也是大致实现了这2中方式,工具中会先选择第一种方式,如果发现第一
种方式不能成功,将会建议使用-F参数,也就是第二种方式。
我们先讲第一种方式。
既然是需要向被跟踪进程发出命令,在linux 中可以选择多种方式进行进程中通讯 共
享内存,文件之类,其中创建socket 的文件实现通讯是比较简单的方法。
下面是整个的流程图:
3
原文链接:http///raintungli/article/details/7023092
Java 开源工具在linux 上的源码分析(二):信号处理
当java 虚拟机启动的时候,会启动很多内部的线程,这些线程主要在thread.cpp 里的
方法体里实现。而在 里主要起了 个线程来处理信号相关的。详细
create_vm thread.cpp 2
请看下文
AD:
当java 虚拟机启动的时候,会启动很多内部的线程,这些线程主要在thread.cpp里的
create_vm方法体里实现。
而在
原创力文档


文档评论(0)