【JAVA教程】关于增强visualvm的一些想法

VisualVM是一个以监控、显示本地或者远程服务器JVM工作情况,进行性能调优的工具。借助VisualVM,我们可以实现对JVM内存各个子池、CPU、垃圾收集器等方面进行监控,从而发现程序代码中潜在的泄露点和配置问题。此外visualvm是jdk里自带的一款比较实用的可视化profiling工具。

想法1:远程连接通过ssh隧道穿透隔离网络访问生产环境

java有处理ssh协议的第三方包,ssh隧道只要对端安装有openssh server都能搞定。

所以,只需要开发一个visualvm的新远程连接插件,即可穿透隔离网络在visualvm的可视化界面下,profling生产环境主机。

当然,安全性和权限需要同时考虑。

想法2:使远程和本地提供的特性一致

visualvm可以用来分析 cup, thread, heap, 采样cpu和内存,heap dump等。

但绝大多数功能仅限于本地。

虽然visualvm也提供了远程访问的功能,但其功能大幅缩水。官方提供的特性列表如下:

幸好visualvm是开源的,为了实现想法2的功能,我们只需要改进一下visualvm的实现,引入一个特殊的远程agent(替换jstatd)。该agent用于访问本机java进程。这样,visualvm的远程访问镜像到本地,同时也具备本地的所有功能。如果想法1和想法2都能实现,我觉得visualvm的使用范围会更广。

PS:JAVA交流群:457036818

时间: 2024-12-28 04:30:20

【JAVA教程】关于增强visualvm的一些想法的相关文章

Java监控工具介绍,VisualVm ,JProfiler,Perfino,Yourkit,Perf4J,JProbe,Java微基准测试

本文是本人前一段时间做一个简单Java监控工具调研总结,主要包括VisualVm ,JProfiler,Perfino,Yourkit,Perf4J,JProbe,以及对Java微基准测试的简单介绍,总结下来比较推荐,Visualvm,Perfino,yourkit和Jprofiler(推荐值按顺序依次递减),其它工具不太推荐使用.下面是文章目录结构:  一.VisualVm  1.简介 2 2.安装插件并启动VisualVM 2 3.内存分析 3 4.CPU分析 5 5.线程分析 6 6.连接

好程序员Java教程分享MyBatis Plus介绍

好程序员Java教程分享MyBatis Plus介绍:1.MyBatis Plus 介绍 MyBatis Plus 是国内人员开发的 MyBatis 增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. MyBatis Plus 的核心功能有:支持通用的 CRUD.代码生成器与条件构造器. 通用 CRUD:定义好 Mapper 接口后,只需要继承 BaseMapper<T> 接口即可获得通用的增删改查功能,无需编写任何接口方法与配置文件 条件构造器:通过 Enti

学java教程之普通方法重载

学编程吧学java教程之普通方法重载发布了,欢迎通过xuebiancheng8.com来访问 先来看什么是普通方法重载呢,先来看一个例子 public class Person{ String username; int age; public void hello(){ System.out.println("Hello"); } public void hello(String username){ System.out.println("你好"+usernam

学java教程之对象数组

学编程吧学java教程之对象数组发布了,欢迎通过xuebiancheng8.com来访问 什么是对象数组呢,对象数组顾名思义是对象的数组. 首先定义一个对象 public class Student{ private String username; private String password; setter,getter.... } 如上面所示,定义了一个Student对象 加入现在需要3个Student对象怎么办呢,我们得 Student stu1 = new Student(); St

java教程(五)SSH框架-配置

前言:从这篇博客开始我将继续讲述Java教程:SSH篇,主要内容围绕SSH框架分析与搭建,今天先简单介绍一下SSH的配置. SSH配置顺序是: spring-->hibernate-->struts 1. 建立web-project ,并添加Spring支持,添加JAR包时注意,aop  core web commons等包要加载,然后一直下一步就可以成功添加spring支持: 2. 添加hibernate支持,同样注意包的选择, 下一步中注意,选择添加到spring中(spring conf

Java虚拟机性能管理神器 - VisualVM(3) 插件安装与更新路径配置

Java虚拟机性能管理神器 - VisualVM(3)  插件安装与更新路径配置 插件路径地址配置方法: VisualVM打开后,会发现功能比较单一,只有概述.监视.线程.抽样器.Profiler五个选项卡,只能对JVM进行内存和线程的基础监控和分析. VisualVM为了能对JVM进行全面的分析和监控,我们打开[工具]菜单[插件]选项,VisualVM本来提供很多插件,而这些插件却下载不了,打开插件功能,提示可用插件为0. 如果新下载的VisualVM[插件]功能中提示可用插件没有数字,问题是

学java教程之集合框架

学编程吧学编程学IT教程之java教程集合框架发布了,欢迎通过xuebiancheng8.com来访问 java中的集合框架故名思议就是针对集合的框架.那什么是集合呢,前面已经学习过数组,没错,数组就是一组数据的集合,换句话说数组也是一种特殊的集合框架,可以完成集合的功能.那数组在使用的时候有没有不方便的地方呢,比方说数组有可能有满的时候,满了怎么办,我们是不是得自己写程序来更改数组的大小呢,而且还要把原来的数组赋值到新的数组的原来位置上,这样很明显数组用起来不是特别方便,很多功能得让我们自己去

学java教程之封装

学编程吧学java教程之封装发布了,欢迎大家通过xuebiancheng8.com来访问 下面来分析面向对象中的封装,什么是封装呢.先来段代码 public class Person{ String username; int age; } Person p = new Person(); p.username="张三"; p.age=-10; 上面实例化了一个Person对象p,然后赋值,这里我们将年龄的值赋值成了-10,这里很明显是不正确的,因为年龄不能为负的,那怎么办呢,这里我们

学java教程之面向对象(四)

学编程吧学java教程之面向对象(四)发布了,欢迎通过xuebiancheng8.com来访问 本次课来分析java面向对象之构造方法.什么是构造方法呢,构造方法听名字顾名思义,构造的时候执行的方法就叫构造方法. 没错,构造方法就是在构造对象的时候执行的方法,就是构造方法,那什么时候构造对象呢,是不是在new的时候调用构造对象呢,所以构造方法就是在new对象的时候执行的方法就是构造方法.构造方法一般用来为对象赋初值.完成对象的初始化. 下面我们来看如何定义构造方法. public class P