jvm开源_开源JVM Sampling Profiler

jvm开源

众所周知 ,大多数现有的采样Java Profiler都必须在安全的地方进行堆栈跟踪收集。 诸如采样探查器之类的探查器就是这种情况,它使用SUN / Oracle管理代理来收集其堆栈跟踪。 这种方法的问题在于,由于不是程序中的每个点都不是安全点,因此会引入样本偏差,还会引入JVM达到安全点所需时间的开销。

不久前,杰里米·曼森(Jeremy Manson) 公开了一些概念验证代码,在该代码中对AsyncGetCallTrace JVMPI方法进行了调用,从而避免了线程到达安全点以读取其调用跟踪的需求。 该代码在后台注册了一个处理程序函数,该函数在发生sigprof时被调用。 因此,它避免了其他采样分析器遭受的许多分析器精度问题。 使用此方法的缺点是异步回调中的代码对其具有可怕的限制,例如无法堆分配内存。 概念证明代码显示出了很大的独创性,但作为概念证明,它缺少有用的功能,例如用户界面或对查看程序运行时正在更新的概要分析数据的支持。

我已经完成了此代码转储,并开始将其转换为可用的开源项目。 该程序有两个主要部分。 有一个小型的C ++ jvmti代理,它写出一个日志文件来描述已附加到该应用程序的配置文件。 然后,Java 8应用程序可以基于此日志呈现/显示配置文件。 读写代码基于内存映射文件,因此,如果要将日志文件移动到tmpfs文件系统,它也可以用作共享内存IPC系统。 我还添加了一个GUI,不是一个很棒的GUI,而是一个开始。
分析器 生成日志文件意味着可以离线或追溯分析配置文件。 例如,您可以从性能测试运行中转出日志文件,然后如果发现生产中存在回归,则可以查看历史差异。 通过将当前堆栈跟踪复制到非阻塞,多生产者,单使用者循环队列中,此事件探查器可避免在异步回调中执行的严格限制,该队列预先分配了固定大小的内存块。 然后,另一个线程将这些堆栈跟踪信息读取出来,该线程将写出日志文件。 另一个线程还需要查找有关诸如方法名称之类的有用信息,因为JVMTI调用查找方法名称信息并不安全。

目前,该代码库尚未投入生产 -我不完全信任很多错误和大量C / C ++代码。请记住,如果JVMTI代理中存在错误,则可能会出现段错误您的JVM。 您已被警告! 源代码位于github上,并且已获得Apache许可。 我既欢迎代码贡献者,也欢迎人们提供任何反馈。 目前一切还处于初期阶段,但我坚信公开开放代码有助于快速提高其质量。

参考: Insightful Logic博客中的JCG合作伙伴 Richard Warburton提供的开源JVM Sampling Profiler 。

翻译自: https://www.javacodegeeks.com/2014/03/an-open-source-jvm-sampling-profiler.html

jvm开源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤教育】国家开放大学2019年春季 97纳税筹划 参考试题

试卷代号:[0097] 座位号 2018-2019学年度第二学期期末考试 纳税筹划 试题 2019年 7 月 单项选择题(将每题四个选项中的唯一正确答案的字母序号填入括号。每小题2分,共20分) 1.避税最大的特点是它的( )。 …

discuz和php的区别,discuz和phpwind优劣比较

discuz!(简称dz)和phpwind(简称pw)是国内最著名的两个PHP论坛系统,随着它们相继宣布开源以后,在各方面,不管技术上,还是功能上,还是界面上,都有了长足的发展,声威大振,远非国外那些功…

串口服务器常见五大问题解决方案

串口服务器提供串口转网络功能,使得串口设备能够立即具备TCP/IP网络接口功能,连接网络进行数据通信,极大的扩展串口设备的通信距离。为了更方便我们操作和使用,今天飞畅科技的小编来为大家介绍下串口服务器常见五大问题解决方案&a…

【渝粤题库】陕西师范大学200641高等数学作业(高起专、专升本)

《高等数学(一)》作业 一、求下列函数的定义域 (1); (2)。 (3) 二、用区间表示变量的变化范围: (1); (2) (3); 三、求下…

为特使构建控制平面的指南-为可插入性构建

Envoy是一个非常强大的软件,每天都会向社区提出新的用例和新的贡献 。 尽管Envoy的核心非常稳定,但它基于可插入的过滤器体系结构,因此人们可以为不同的L7协议编写新的编解码器或添加新的功能。 目前,Envoy过滤器是用C 编写的&…

【渝粤教育】广东开放大学 21秋期末考试 公共政策学10855K1

判断题 1、公共政策过程大致包括社会问题、问题确认、政策规划、政策采纳、政策执行和效果评估六个环节。(2 分) 正确 错误 2、政党对政策制定的影响往往是靠竞争来实现的。(2 分) 正确 错误 3、在一定条件下,物质性政…

php 获取数据库中的信息,php获取数据库中数据的实现方法

废话不多说,直接上代码header("Content-type:text/html;charsetutf-8");//字符编码设置$servername "localhost";$username "root";$password "root";$dbname "web";// 创建连接$con mysqli_connect($server…

【渝粤教育】10180k2_统计基础_21秋考试

1、次数分配数列是()。(2 分) A.按数量标志分组形成的数列 B.按品质标志分组形成的数列 C.按统计指标分组所形成的数列 D.按数量标志和品质标志分组所形成的数列 2、下列指标中属于时…

weblogic工具_WebLogic Classloader分析工具

weblogic工具WebLogic Server具有一个名为Classloader Analysis Tool的内置Web应用程序,您可以通过http:// localhost:7001 / wls-cat访问它 您需要使用为/ console Webapp配置的同一用户登录。 使用CAT,您可以检查应用程序在服务…

必看!工业交换机必须满足这些标准才能称合格

我们都知道,工业交换机是专为工业环境而生产设计的,所以工业交换机的要求比一般商业交换机要严苛的多!但现在市场上很多打着工业级交换机的幌子,卖的是商业级别的,因为很多客户其实分辨不出来,一旦出现了问…

【渝粤教育】10259k2_经济学基础_21秋考试

单项选择题 1、基数效用是指( )(2 分) A.效用是可以计量并加总求和的 B.效用不可计量,也不能加总求和 C.效用是可以比较的 D.效用只能用序数来表示 2、下列哪种情况所对应…

matlab 求系统码的校验矩阵,数字通信系统matlab仿真

课程设计报告题目:基于MATLAB的通信系统仿真———信道编码对通信系统性能的影响专业: 通信工程 姓名: XXX 学号: 0730xxxx基于MATLAB的通信系统仿真———信道编码对通信系统性能的影响摘要:简述信道编码理论&#xf…

【渝粤教育】21秋期末考试个人与团队管理10257k2

1、关于培训,说法正确的是()。(2 分) A.只有新员工需要培训 B.培训主要针对技能、思考能力和解决问题的方法等内容 C.培训属于发展活动 D.培训属于学习活动 2、与管理者相比&#xf…

创建自定义Maven原型

Maven原型是项目模板,可以帮助我们根据其类型快速创建maven入门项目 。 这是一个非常省力的引导Maven项目的好工具。 有许多可供选择的原型。 一些流行的原型包括– maven-archetype-quickstart , maven-archetype-webapp , maven-archetype…

【渝粤教育】21秋期末考试国际私法10216k1

1、在下列机构中,————属于国际性的常设仲裁机构( )(3 分) A.瑞典斯德哥尔摩商会仲裁院 B.解决投资争端国际中心 C.美国仲裁协会 D.英国伦敦国际仲裁院 2、由于———…

php中的id怎么传值,uniapp如何跳转页面传值

uniapp跳转页面传值的方法:首先给点击事件传入id;然后Methods中写方法,代码为【uni.navigateTo({url:opportunity-form?idid})】;最后在详情页接收参数。本教程操作环境:windows7系统、uni-app2.5.1版本,该…

二层和三层工业交换机的主要参数说明

工业交换机是工业数据通信领域重要的设备,可以这样说,如果没有工业交换机,很多地方或者项目都联不上网,更不提进行远程网络管理了!目前比较流行的工业交换机又分为二层和三层,之前我们也给大家介绍过什么是…

【渝粤教育】 广东开放大学 21秋期末考试互联网营销概论10092k2

1、物流的功能,下列选项中不属于的是( )(2 分) A.包装 B.装卸 C.售后 D.配送 2、网络营销工具中,SEM即( )(2 分&#xff0…

php iconv 无效,关于nodejs iconv的编码无效 说明

关于编码转换或许你从网络途径 得知是这样使用的var fs require("fs");var iconvrequire("iconv-lite");var requestrequire("request");var txtfs.readFileSync("./a.txt","utf8");iconv.decode(txt,"gbk")requ…

工业级PoE交换机是如何进行工作的?使用中要注意什么?

工业级PoE交换机应用非常广泛,许多供电不方便的项目基本都采用了工业级PoE交换机来进行数据传输通信,而且大都是非网管型的,即插即用,配置简单,非常方便!但你知道它是如何进行工作的吗?我们在使…