
【jvm调优】
极客on之路
热爱技术,做有态度的技术人!
微信平台架构设计开发。支付技术,安全加密,金融证券
展开
-
eclipse内存设置,tomcat内存设置,查看内存大小
首先可以通过java/jdk/bin下的java visualVM查看eclipse的内存大小和tomcat的内存大小,主要看堆,PermGen两个大小如图: 多数情况下,eclipse抛出内存溢出的错误,并不一定仅仅是eclipse内存大小的,可以通过上面的这个工具查看是什么原因引起的内存溢出错误如果是eclipse内存溢出引起的错误,修改eclipse.ini文件如下-Xm转载 2016-10-29 22:50:21 · 436 阅读 · 0 评论 -
Java线程堆栈信息|jstack|dump
1.jstack PIDjstack PID > 123.txt可以查看指定进程的所有线程状态2.jmap -dump:format=b,file=123.hprof PID转载 2019-04-10 12:18:23 · 376 阅读 · 0 评论 -
jvm 性能调优工具 jstack
Jstack命令学习https://blog.youkuaiyun.com/cockroach02/article/details/82701458Online Java Thread Dump Analyzerhttp://spotify.github.io/threaddump-analyzer/jstack简单使用,定位死循环、线程阻塞、死锁等问题https://www.cnblo...转载 2019-04-10 14:38:58 · 418 阅读 · 0 评论 -
JAVA性能优化思路探究
https://www.zhihu.com/people/ti10798/activities转载 2019-04-11 16:05:06 · 281 阅读 · 0 评论 -
JVM内存模型总结
JVM内存模型:从这张图中很直观的看到,程序计数器,虚拟机栈,native栈是线程私有的,堆是线程共有的,现在详细介绍JVM各个区块。1.堆(Heap)是java虚拟机所管理的内存中最大的一块内存区域,也是被各个线程共享的内存区域,该内存区域存放了对象实例及数组(但不是所有的对象实例都在堆中)。其大小通过-Xms(最小值)和-Xmx(最大值)参数设置(最大最小值都要小...转载 2019-04-08 11:26:06 · 201 阅读 · 0 评论 -
jps 命令详解
JPS 名称:jps - Java Virtual Machine Process Status Tool命令用法:jps [options] [hostid] options:命令选项,用来对输出格式进行控制 hostid:指定特定主机,可以是ip地址和域名, 也可以指定具体协议,端口。 [prot...转载 2019-04-09 15:36:29 · 1851 阅读 · 0 评论 -
jstat 命令详解
概述Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。jstat 用法option: 参数选项 -t: 可以在打印的列加上Time...转载 2019-04-09 16:12:49 · 9186 阅读 · 0 评论 -
Intellij IDEA 的Tomcat Server 配置VM options参数说明
点击Intellij IDEA 界面窗口Run,打开Edit Configuration,出现Run/Debug Configurations界面。Application server 选择安装Tomcat所在的文件夹,点击Configuration一般自动配置好了,其他的就按照图上的填写。VM options这项需要我们自己填写,我填的是VM options : -Xms768m -Xmx...原创 2019-04-16 09:51:40 · 4840 阅读 · 0 评论 -
tomcat vm 参数设置
配置tomcat调用的虚拟机内存大小(1)直接设置tomcat Linux 修改TOMCAT_HOME/bin/catalina.sh 位置cygwin=false前。 JAVA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m" (仅做参考,具体数值根据自己的电脑内存配置) ...转载 2019-04-16 09:54:53 · 9392 阅读 · 0 评论 -
jdk 1.7 jvm 参数及其默认值
[Global flags] uintx AdaptivePermSizeWeight = 20 {product} uintx AdaptiveSizeDecrementScaleFactor = 4 {product} ...转载 2019-04-16 10:51:32 · 2419 阅读 · 0 评论 -
Java内存溢出场景 解决办法
Java内存溢出即程序在申请内存时,没有足够的空间供其使用,出现out of memory。常见于四种情况:栈溢出(StackOverflowError)、堆溢出(OutOfMemoryError:java heap space)、永久代溢出(OutOfMemoryError: PermGen space)、OutOfMemoryError:unable to create native...转载 2019-04-16 15:30:04 · 1785 阅读 · 0 评论 -
如何使用jstack分析线程状态
背景记得前段时间,同事说他们测试环境的服务器cpu使用率一直处于100%,本地又没有什么接口调用,为什么会这样?cpu使用率居高不下,自然是有某些线程一直占用着cpu资源,那又如何查看占用cpu较高的线程?当然一个正常的程序员不会写出上述代码,这里只是为了让一个线程占用较高的cpu资源。top命令在linux环境下,可以通过top命令查看各个进程的cpu使用情况,默认按c...转载 2019-04-10 12:02:57 · 237 阅读 · 0 评论 -
开发高性能JAVA应用程序基础(内存篇)
虽然JAVA的垃圾回收和当前高配置的服务器可以让程序员大部分时间忘掉OutOfMemoryError的存在,但是访问量增大后频繁的GC会额外消耗CPU (使用top查看结果为us值高),系统响应速度下降,积压的请求又会占用更多内存从而恶性循环,严重时可能导致系统不断Full GC造成应用停顿。优化内存的使用可从以下几方面着手:一、节流1 使用单例模式单例模式是开发者最早接触并使用的设计模式之一,尽...转载 2018-04-19 17:26:39 · 257 阅读 · 0 评论 -
Java的运行原理
在Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode)(class文件的内容),它不面向任何特定的处理器,只面向虚拟机。每一种平台的解释器是转载 2018-01-08 17:03:41 · 356 阅读 · 0 评论 -
java 虚拟机 认识
什么是Java虚拟机作为一个Java程序员,我们每天都在写Java代码,我们写的代码都是在一个叫做Java虚拟机的东西上执行的。但是如果要问什么是虚拟机,恐怕很多人就会模棱两可了。在本文中,我会写下我对虚拟机的理解。因为能力所限,可能有些地方描述的不够欠当。如果你有不同的理解,欢迎交流。我们都知道java程序必须在虚拟机上运行。那么虚拟机到底是什么呢?先看网上搜索到的比较靠谱的转载 2017-09-13 15:56:28 · 332 阅读 · 0 评论 -
JVM 内存初学 (堆(heap)、栈(stack)和方法区(method) )
这两天看了一下深入浅出JVM这本书,推荐给高级的java程序员去看,对你了解JAVA的底层和运行机制有比较大的帮助。废话不想讲了.入主题:先了解具体的概念:JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只转载 2017-09-26 16:42:26 · 204 阅读 · 0 评论 -
触摸java常量池
http://www.cnblogs.com/dreamroute/p/5946272.htmlhttp://www.cnblogs.com/dingyingsi/p/3760447.html转载 2017-09-26 17:10:15 · 208 阅读 · 0 评论 -
Java虚拟机-----方法区和运行时常量池
方法区: 方法区(Method Area)与Java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的 代码等数据(是唯一的数据)。当java虚拟机通过类加载器加载这个类的时候,这个类的信息就会保存到方法区中,虽然Java虚拟机规范把方法区描述为堆的 一个逻辑部分,但是它却有一个别名叫做Non-Heap(非堆),目的应该是与Java堆区分转载 2017-09-28 11:35:45 · 658 阅读 · 0 评论 -
jvm 内存回收finalize如何在垃圾清除前工作原理
finalize 定义: finalize-方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize()转载 2017-09-30 10:17:37 · 317 阅读 · 0 评论 -
java finalize方法总结、GC执行finalize的过程
注:本文的目的并不是鼓励使用finalize方法,而是大致理清其作用、问题以及GC执行finalize的过程。1. finalize的作用finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。finalize()与C++中的析构函数不是对应的。C++中的析构函数调用的时机是确定的(对象离开转载 2017-09-30 10:53:57 · 212 阅读 · 0 评论 -
面试准备之JVM的组成、垃圾回收机制
1.JVM的组成 JVM定义了控制Java代码解释执行和具体实现的五种规格,因此把JVM分成了6个部分:JVM解释器、指令系统、寄存器、栈、存储区和碎片回收区。 ◆JVM解释器:即这个虚拟机处理字段码的CPU。 ◆JVM指令系统:该系统与计算机很相似,一条指令由操作码和操作数两部分组成。操作码为8位二进制数,主要是为了说明一条指令的功能,操作数可以转载 2017-10-11 14:15:43 · 289 阅读 · 0 评论 -
理解Java的GC日志
一、日志分析 理解GC日志是处理Java虚拟机内存问题的基本技能,下面我们具体来看看。通过在java命令种加入参数来指定对应的gc类型,打印gc日志信息并输出至文件等策略。1、编写java代码public class ReferenceCountingGC { public Object instance = null; private static fin转载 2017-10-13 16:28:57 · 736 阅读 · 0 评论 -
HotSpot JVM收集器
HotSpot JVM收集器 上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。并发和并行 先解释下什么是垃圾收集器的上下文语境中的并行和并发: 并行(Parallel):指多条垃圾收集器线程并行工作,但此时用户线程仍然处于等待。 并发(Concurr转载 2017-11-06 14:36:29 · 194 阅读 · 0 评论 -
JVM之内存分配与回收策略
https://www.cnblogs.com/xiaoxi/p/6557473.html#top转载 2019-04-17 13:44:17 · 118 阅读 · 0 评论