Giter Club home page Giter Club logo

vjtools's Introduction

VJTools Build Status

主力于Java的唯品会,关于Java的一些小家底。

各位看官看着是好的,烦请“Star”。

1.0.8版 - 2018.9.24

Java Standard

Project Description
standard 唯品会Java开发手册
code formatter IDE格式化模板
sonar rule Sonar规则定制示例

Java Core Library

Project Description
vjkit 关于文本,集合,并发等基础功能的核心类库
vjstar 关于后端应用的性能、可用性的最佳实践

Java Tools

Project Description Manual
vjtop 观察JVM进程指标及其繁忙线程 Chinese
vjmap JMAP的分代打印版 Chinese
vjdump 线上紧急收集JVM数据脚本 Chinese, English
vjmxcli JMX 查看工具 Chinese

视频:《VJTools如何利用佛性技术玩转JVM》

文档:《入门科普,围绕JVM的各种外挂技术》

其他直接使用的工具,见常用工具

Contributing

VJTools官方微信讨论群,请搜索微信号viptech128(唯技术),添加好友后加入。

所有报Bug、建议与咨询,请在Issues发起;所有代码提交,请走Pull Request流程。

对于优秀的代码提交和建议,唯品会将不吝发挥电商本色,给予vip.com购物卡的奖励 !!!

Developers

唯品会团队: 江南白衣, 郑德惠, 黄云斌, 梁耀曾, 林铭恺, 李炫彬 , 张晓玲

曾经一起战斗: 杨镌颖@阿里, 陈维治@阿里

vjtools's People

Contributors

acxlam avatar byference avatar calvin1978 avatar chenxushao avatar crossoverjie avatar dependabot[bot] avatar diamondyuan avatar dylanxue avatar hackergeek avatar hjzhangxiaoling avatar jonliang avatar kewei-wang avatar lixuanbin avatar mz1999 avatar peachyy avatar qudongfang avatar qxo avatar renchunxiao avatar robingg avatar testfixer avatar traburiss avatar xianlaioy avatar yixiaohan avatar zhengdehui avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vjtools's Issues

是否会增加PMD规则?

是否有考虑过增加PMD规则,公司内部基于git服务端hook对提交代码通过PMD进行代码规范检测,sonar-runner貌似对这种支持不太好

LongAddr

LongAddr类中的Cell类中的填充属性会不会被jdk给优化掉了?
这个经过测试没有?

option to dump old generation only?

heap is bigger than 8G normally and takes long time&big disk to dump a whole one, expect an option to dump old generation only.
best wish!

PropertiesUtil问题

PropertiesUtil.loadFromFile():注释为:路径支持从外部文件或resources文件加载, "file://"或无前缀代表外部文件, "classpath://"代表resources;
当实际上URLResourceUtil.asStream(generalPath)用的是classpath: 非classpath://

vjtop可以根据关键字模糊匹配线程名

vjtop目前会默认把所有线程都统计在一起。有时候只需要关注某些特定的线程,因此建议可以根据关键字模糊匹配线程名,只显示匹配上的线程信息出来

vjstar添加主动GC功能| Proactive GC task added to vjstar

很多时候,JVM自动回收腊鸡是件美好的事情,但是在业务高峰的时候偏偏发现老年代已经接近触发CMS阀值,就有点让人焦躁了吧?我们为什么不在流量低谷的时候主动清扫下内存里面无用的老家伙们呢? | Garbage collection is a good thing, JVM will do most of the dirty stuff for us. But when our system is at its peak moment and is making millions of dollars every second, we might get frustrated to see the garbage collector is yelling to "stop-the-world". Why don't we do it more proactively, for example, try to trigger a GC when our system is snoring?

增加vjmxcli-JMXClient

在jmxcli上二次开发

  1. 支持当原应用未打开jmx端口时,能够直接通过pid 连接进去。

  2. 当jstat不能使用时,完全模拟jstat -gcutil的输出

vjtop在jdk1.8.0_60运行报空指针异常

具体报错信息如下:

七月 14, 2018 10:19:40 下午 com.vip.vjtools.vjtop.VMInfo update
信息: error during update
java.lang.NullPointerException
at com.vip.vjtools.vjtop.VMInfo.updateMemoryPool(VMInfo.java:312)
at com.vip.vjtools.vjtop.VMInfo.update(VMInfo.java:224)
at com.vip.vjtools.vjtop.VMDetailView.printView(VMDetailView.java:54)
at com.vip.vjtools.vjtop.VJTop.run(VJTop.java:192)
at com.vip.vjtools.vjtop.VJTop.main(VJTop.java:120)
ERROR: Could not fetch telemetries - Process terminated?

[vjtop] 进一步改善 vjtop 的交互式体验

Hi Team,
我很喜欢 vjtop 最新添加的交互式操作,这让 vjtop 更加贴近 top 命令
不过我感觉在输入指令后还要按回车实在不够“Geek”
我在网上搜索以后,找到了下面这篇博客提到了可以实现更加贴近 top 的命令输入方式:
Non blocking console input in Python and Java
不过博客中提到的方法只适用于 Linux,Windows 需要引入额外的包
不知道 vjtools team 有没有兴趣研究一下

vjmap文档笔误

vjmap文档概述里面

分代版的jmap(新生代,存活区,老生代),是排查内存缓慢泄露,老生代增长过快原因的利器。因为jmap -histo PID 打印的是整个Heap的对象统计信息,而为了定位上面的问题,我们需要专门查看OldGen对象,和Survivor区老龄剩男的工具。

和Survivor区老龄剩男的工具这个剩男是不是笔误?

关于 Orika 的潜在性 bug

白衣大神,看 vjkit 的时候还在想出于什么考虑选用了用 Dozer,后来在 BeanMapper 的注释看到了这句话:

orika性能更好,也不需要Getter函数与无参构造函数,但有潜在bug还没在社区版修复

请问是啥 bug?我目前正在使用 Orika,并且基于 Orika 封装了一个工具 Copiers,想看下对我有没有影响。

几个命令编译后都无法执行

编译执行的,难道是我的使用方式或者环境不对吗?白衣大人

vjmap
[root@qa-admin vjmap]# ./vjmap.sh -all 5111
WARNING!! STW(Stop-The-World) will be performed on your Java process, if this is NOT wanted, type 'Ctrl+C' to exit.
sun.jvm.hotspot.runtime.VMVersionMismatchException: Supported versions are 25.111-b14. Target VM is 25.161-b14

[root@qa-admin vjmap]# java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

vjtop
root@qa-admin vjtop]# ./vjtop.sh 5111
六月 20, 2018 5:43:49 下午 com.vip.vjtools.vjtop.VMInfo processNewVM
严重: could not attach (PID=5111)
java.io.IOException: Unable to open socket file: target process not responding or HotSpot VM not loaded
at com.vip.vjtools.vjtop.data.jmx.JmxClient.getConnectorAddress(JmxClient.java:254)
at com.vip.vjtools.vjtop.data.jmx.JmxClient.tryConnect(JmxClient.java:112)
at com.vip.vjtools.vjtop.data.jmx.JmxClient.connect(JmxClient.java:102)
at com.vip.vjtools.vjtop.VMInfo.processNewVM(VMInfo.java:132)
at com.vip.vjtools.vjtop.VMDetailView.(VMDetailView.java:44)
at com.vip.vjtools.vjtop.VJTop.main(VJTop.java:88)
Caused by: com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded
at sun.tools.attach.LinuxVirtualMachine.(LinuxVirtualMachine.java:106)
at sun.tools.attach.LinuxAttachProvider.attachVirtualMachine(LinuxAttachProvider.java:63)
at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:208)
at com.vip.vjtools.vjtop.data.jmx.JmxClient.getConnectorAddress(JmxClient.java:252)
... 5 more
ERROR: Could not attach to process.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.