Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >推荐一些冷门但是超级实用的工具

推荐一些冷门但是超级实用的工具

作者头像
好好学java
发布于 2020-07-14 09:11:03
发布于 2020-07-14 09:11:03
55500
代码可运行
举报
运行总次数:0
代码可运行

点击上方 好好学java ,选择 星标 公众号

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
重磅资讯、干货,第一时间送达
今日推荐:牛人 20000 字的 Spring Cloud 总结,太硬核了~个人原创+1博客:点击前往,查看更多

ZooInspector

下载地址:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip

当我们想看zookeeper上的节点信息时,输命令很麻烦,也不直观,介绍一个可视化的客户端

解压后进入build目录执行命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java -jar zookeeper-dev-ZooInspector.jar

输入连接地址,即可看到zookeeper的节点值,权限信息,还是很方便的

codebeautify

网址:https://codebeautify.org/

这是一个神器的网站,你想到的,你想不到,它都有。最主要的是清爽无广告

文件格式转换

图片格式转换

文件校验,对比

...

gceasy

网址:https://gceasy.io/

GC日志分析最常用的工具是GCeasy和GCViewer

GC调优主要关注两个指标

  1. 停顿时间:垃圾收集器为了执行垃圾回收而中断应用执行的时间
  2. 吞吐量:垃圾收集时间和总时间的占比,GC时间越少,吞吐量越大

所以我们会根据响应速度重要还是吞吐量重要选择不同的垃圾收集器。比如,运算场景我们更关注吞吐量,而各种网站更重视响应速度

写个Demo

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * vm args: -Xms20m -Xmx20m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:./gc.log
 */
public class HeapOOM {

    static class OOMObject {

    }

    public static void main(String[] args) {
        List<OOMObject> list = new ArrayList<>();
        while (true) {
            list.add(new OOMObject());
        }
    }
}

各个参数的作用如下

参数

作用

-XX:+PrintGCDetails

输出详细GC日志

-XX:+PrintGCTimeStamps

输出GC的时间戳(以JVM启动到当期的总时长的时间戳形式)

-XX:+PrintGCDateStamps

输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)

-Xloggc:./gc.log

输出GC日志到指定文件

点击上传日志文件,即可看到分析结果

展示了新生代,老年代,元空间分配的大小和峰值

Throughput为吞吐量,正常情况下不会为负值的哈,我这个例子太极端了

Avg Pause GC Time 平均GC时间

Max Pause GC TIme 最大GC时间

堆内存在GC后还一直飙升

Minor GC和Full GC的一些相关指标,还有很多其他指标,有兴趣的可以上传几个日志看一下效果

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 好好学java 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
垃圾回收的常见算法
自动化的管理内存资源,垃圾回收机制必须要有一套算法来进行计算,那些是有效的对象,那些是无效的对象,对于无效的对象 就要进行回收处理。 常见的垃圾回收算法有 :引用计数法、标记清除法、标记压缩法、复制算法、分代算法等。
海仔
2019/08/05
3530
垃圾回收的常见算法
【GC分析】Java GC日志查看「建议收藏」
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说【GC分析】Java GC日志查看「建议收藏」,希望能够帮助大家进步!!!
Java架构师必看
2022/02/16
1.8K0
【GC分析】Java GC日志查看「建议收藏」
性能优化-可视化GC日志分析工具
前面通过-XX:+PrintGCDetails可以对GC日志进行打印,我们就可以在控制台查看,这样虽然可以查看GC的信息,但是并不直观,可以借助于第三方的GC日志分析工具进行查 看。
cwl_java
2020/02/13
1.4K0
知道如何优化垃圾回收机制吗?
在 Java 开发中,开发人员是无需过度关注对象的回收与释放的,JVM 的垃圾回收机制可以减轻不少工作量。但完全交由 JVM 回收对象,也会增加回收性能的不确定性。在一些特殊的业务场景下,不合适的垃圾回收算法以及策略,都有可能导致系统性能下降。
田维常
2020/05/25
8610
jvm系列(五):Java GC 分析
Java GC就是JVM记录仪,书画了JVM各个分区的表演。 什么是 Java GC Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。概括地说,该机制对JVM(Java Virtual Machine)中的内存进行标记,并确定哪些内存需要回收,根据一定的回收策略,
纯洁的微笑
2018/04/18
1.9K0
jvm系列(五):Java GC 分析
教你如何通过分析GC日志来进行JVM调优
不同的垃圾收集器产生的GC日志大致遵循了同一个规则,只是有些许不同,不过对于G1收集器的GC日志和其他垃圾收集器有较大差别,话不多说,正式进入正文。。。
肉眼品世界
2020/11/11
3.2K0
教你如何通过分析GC日志来进行JVM调优
一文学会JVM性能优化
之前我们画过一张图,是从Class文件到类装载器,再到运行时数据区的过程,现在咱们把这张图不妨丰富完善一下,展示了JVM的大体物理结构图。
Java架构
2019/10/09
4710
一文学会JVM性能优化
JVM 常见参数
特殊说明: 解决问题的光鲜,藏着磕Bug的痛苦。 万物皆入轮回,谁也躲不掉! 以上文章,均是我实际操作,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,请勿直接盗用!
收心
2022/01/19
4070
20.GC日志详解及日志分析工具
分析JVM性能,肯定要看GC日志,那么GC日志中各个参数都代表什么含义呢?祥看下文。 日志导出来以后,用肉眼看,太费劲了,来看看有什么好用的工具对GC日志进行分析。不管能分析,还有推荐解决方案哦。
用户7798898
2022/05/09
5K1
20.GC日志详解及日志分析工具
垃圾回收的常见算法
自动化的管理内存资源,垃圾回收机制必须要有一套算法来进行计算,那些是有效的对象,那些是无效的对象,对于无效的对象 就要进行回收处理。 常见的垃圾回收算法有 :引用计数法、标记清除法、标记压缩法、复制算法、分代算法等。
AI.NET 极客圈
2019/07/23
1.4K0
JVM参数配置及调优
非标准参数表示不保证所有JVM实现都支持这些参数,在将来的JVM版本中可能会发生改变。非标准参数统一以 -X 开头,如 -Xmx20M 设置最大java堆大小,示例:
兜兜转转
2023/03/08
3.2K0
JVM参数配置及调优
GC - Java 垃圾回收机制教科书级教学
注意:垃圾收集主要是针对堆和方法区进行;程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收。
Java编程指南
2022/05/31
1K0
GC - Java 垃圾回收机制教科书级教学
GC日志详解
JVM的内存结构从大的结构来说主要分为堆区和非堆区。在实际测试中针对IO密集型的程序往往需要它的高可用,也就是在客户端高并发以及持续不断的向服务发送请求进行交互的时候,是否存在堆区或者是非堆区的内存泄露。如针对发送短信服务而言能够处理的最大短信量是100万,那么当N个100万的任务同时发送请求以及大于100万的任务发送请求,服务端极有可能存在内存泄露的情况,此时就需要打印以及输出GC的日志信息并且来关注分析GC的日志信息。下面详细地阐述下GC的日志信息。
无涯WuYa
2023/02/28
7730
GC日志详解
【RocketMq】Broker 启动脚本分析
继 [【RocketMq】NameServ启动脚本分析(Ver4.9.4)] 之后又来看看Broker的脚本。总体上来看大差不差,以阅读核心的配置部分调优为主。
阿东
2023/02/22
7470
【RocketMq】Broker 启动脚本分析
浅谈 G1 GC 日志格式
在 Java9 中,G1 GC 将成为默认的垃圾收集器,G1 垃圾收集器的关键特性之一是能够在不牺牲吞吐量的同时,限制 GC 暂停时间(即可以设置所需的最大停顿时间)。
九州暮云
2019/08/21
2.8K0
浅谈 G1 GC 日志格式
JVM 11 的调优指南:如何进行JVM调优,JVM调优参数
JVM 11的优化指南:如何进行JVM调优,以及JVM调优参数有哪些”这篇文章将包含JVM 11调优的核心概念、重要性、调优参数,并提供12个实用的代码示例,每个示例都会结合JVM调优参数和Java代码
搜云库技术团队
2024/01/17
1.7K0
JVM 11 的调优指南:如何进行JVM调优,JVM调优参数
jvm参数学习
-noverify:关闭类验证 -server:JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升。 -Xmx12G -Xms12G:堆内存最大最小值 -XX:+ExplicitGCInvokesConcurrent:调用System.gc()时,不是进行fullgc,而是并发的CMS GC。 -XX:+UseG1GC:使用G1垃圾回收器 -XX:MaxGCPauseMillis=200:设置GC暂停等待时间,单位
晓果冻
2022/11/01
3250
JVM层GC调优(下)
本文是 JVM层GC调优(上) 的后续,在上一篇文章中,我们介绍了JVM的内存结构、常见的垃圾回收算法以及垃圾收集器和不同收集器中的一些GC调优参数。所以通过上文,我们也对GC相关的内容有了一定的了解。
端碗吹水
2020/09/23
1.1K0
JVM层GC调优(下)
阿里终面:用过GC日志可视化工具进行JVM调优吗?
上周知识星球的小伙伴面了阿里,在二面中被问到GC日志分析,感觉回答的不是很好,过来找我复盘,大致听了他的回答,虽然回答出了部分,但是没抓到重点。
码猿技术专栏
2023/12/28
3370
阿里终面:用过GC日志可视化工具进行JVM调优吗?
JVM之GC日志续
特殊说明:生产环境gc日志要遵循够用就好的原则,因为gc日志的时间也是会算在stw时间里的,如果gc日志的输出是同步刷盘模式,有可能会因为系统其他IO异常造成gc停顿时间的异常(由于gc打印造成的异常我们下一篇再详细介绍下)
Coder的技术之路
2021/05/14
7340
相关推荐
垃圾回收的常见算法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档