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,一经查实,立即删除!

相关文章

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

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

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

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

weblogic工具_WebLogic Classloader分析工具

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

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

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

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

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

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

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

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

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

具有Azure功能的无服务器API

在这篇文章中,我将研究一个非常简单的用例。 在执行部署管道时, FlexDeploy可能会产生一些应被批准或拒绝的人工任务。 例如,某人必须批准对生产环境的部署。 可以在FlexDeploy UI中或通过某些外部通信渠道来完成。 今天,我将重点…

工业以太网交换机的安全问题详解

以太网交换机技术发展趋势近几年来,随着企业数据通信业务以及相关的融合业务的迅猛发展,以太网交换机作为不可或缺的要害设备不仅在数量上获得了极大的提高,而且在质量、性能等方面不断完善。而伴随着以太网交换机的迅速普及,它的…

orm java_Java 8 Friday:不再需要ORM

orm java在Data Geekery ,我们喜欢Java。 而且,由于我们真的很喜欢jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋。 Java 8星期五 每个星期五,我们都会向您展示一些不错的教程风格的Java 8新功…

工业交换机的端口号结构特征

假如按工业交换机的端口号构造来分,工业交换机大概可分成:固定不动端口号工业交换机和模块化设计工业交换机二种不一样的构造。实际上也有一种是二者兼具,那便是在出示基础固定不动端口号的基本以上再配置一定的拓展扩展槽或控制模块。今天&a…

工业以太网的冗余功能有哪些?

由于工业环境对工业控制网络可靠性能的超高要求,工业以太网的冗余功能应运而生。从快速生成树冗余(RSTP)、环网冗余(RapidRing)到主干冗余(Trunking),都有各自不同的优势和特点,控制工程师们可以…

input发送a.jax_JAX-RS 2.0:自定义内容处理

input发送a.jax我试图想到一个更好的标题,但未能拿出一个! 请多多包涵……。 JAX-RS 2.0规范允许我们无缝地将JAXB对象编组到HTTP请求/响应主体,或从HTTP请求/响应主体中解组。 简而言之,我们可以使用域对象,而不必担…

工业以太网交换机出现温度过高如何处理?

工业交换机由于其良好的通信性能、超强的抗磁抗干扰性被应用在工业环境下。我们都知道工业环境是很恶劣的,加上工业交换机要连续不间断的工作,很容易造成工业交换机过热的现象!因此除了产品本身采用宽温度范围的元器件之外,我们更…

如何将Java应用程序置于Apache HTTP服务器之后

在过去 ,将Apache HTTP服务器置于Java应用程序服务器或Java应用程序本身的前面是很常见的事情。 其背后的原因非常简单,可以以简单的方式添加缓存,还可以添加负载平衡,并且在此静态内容之上可以由Apache HTTP提供服务&#xff0c…

工业以太网交换机的概念及其主要功能介绍

随着互联网技术的快速发展,工业以太网在工业的通信领域也在大展身手,工业以太网交换机作为重要的通信设备,在整个工业通信行业中有着极其重要的功能!下面,飞畅科技的小编就来为大家详细介绍一下什么是工业以太网交换机…

Zigbee 电动智能窗帘系统 解决方案

随着社会经济结构、家庭人口结构以及信息技术的发展变化以及人类对家居环境的安全性、舒适性、效率性要求的提高,造成家居智能化的需求大大增加, 同时越来越多的家庭要求智能家居产品不仅要满足一些基本的需求,更要求智能家居系统在功能扩展、…

oracle utf8 varchar,Oracle中字符集的类型决定varchar2的字符长度

1.前几天往数据库表里面插入数据的报了一个这样的错误如下:SQL> insert into student values(中华人民共和,60);insert into student values(中华人民共和,60)*第 1 行出现错误:ORA-12899: 列 "SYSTEM"."STUDENT"."NAME" 的值太大…

为什么BAT这些大企业都喜欢用LoRa技术?

相信对于很多朋友来说LORA通讯协议还是比较陌生的,因为LORA这种通讯技术是在2016年开始才正式传入中国的。现在阿里、Google、腾讯等互联网巨头都已经加入了LORA联盟,最有意思的是亚马逊,它在今年西雅图举行的硬件大会上,发布了一…

蓝牙的原理,蓝牙耳机怎么连接手机

蓝牙技术是一种无线数据和语音通信的通信协议,它是一种基于低成本的近距离的无线连接,为固定和移动设备监理通信环境的一种近距离无线连接技术。 蓝牙的作用 蓝牙使今天的一些便携式移动设备和计算机是被能够不需要线路就能相互链接,并且可以…