工欲善其事必先利其器-JVM相关参数、命令、常用工具

本文主要是介绍工欲善其事必先利其器-JVM相关参数、命令、常用工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

注意:本文不做相关参数、命令、常用工具的演示。

JVM参数

大体上分为四类:
1.标准参数
就是不会随着jdk的版本不同而不同。如java -version、java -help 2.-X参数 :
如 java -Xint -version、 java -Xmixed -version
3.-XX参数
-XX:[+/-] :+就是开启 -就是关闭。比如: -XX:+UseG1GC 开启G1垃圾收集器
-XX: name=value 比如: -XX:InitialHeapSize=100M 设置堆内存大小为100MB
4.其他参数
可以看作是对-XX参数的一个缩写。如:
-Xms100M 等同于 -XX:InitialHeapSize=100M
-Xmx100M
-Xss100

应用场景:
1.开发工具中设置,如IDEA、Eclipse
2.运行jar包的时候:java -XX:+UseG1GC xxx.jar
3.web容器,比如tomcat,可以在脚本中进行设置
3.使用jinfo实时调整某个java进程的参数(参数只有被标记为manageable的flags可以被实时修改)

JVM命令

(1)jps: 当前的java进程
(2)jinfo: 查看某个java进程目前的参数设置的情况
(3)jstat: 查看java进程统计性能
(4)jstack:查看当前java进程的堆栈信息
(5)jmap:打印出堆转存储快照 jmap -heap PID
dump出堆内存相关信息:jmap -dump:format=b,file=heap.hprof PID

常用工具

(1)jconsole
(2)jvisualvm
(3)arthas
(4)mat/perfma:内存相关的信息
(5)gceasy.io/gcviewer

GC优化

就是通过不断调整,观察GC日志的吞吐量和停顿时间,寻找最佳值

如下参数: 使用G1收集器,打印GC的一些信息,并输出到gc.log 这个文件里
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+UseG1GC -Xloggc:gc.log
导出gc日志后会发现看不懂,浏览器打开gceasy.io,可以在线查看gc.log文件。或者使用gcviewer客户端查看。

主要就是调整各种参数、垃圾收集器—>查看吞吐量和停顿时间的变量
追求的是高吞吐量,低停顿时间

性能优化指南

在这里插入图片描述
<<上一篇:JVM垃圾回收

这篇关于工欲善其事必先利其器-JVM相关参数、命令、常用工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/361048

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始