lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  1846 随笔 :: 0 文章 :: 109 评论 :: 288万 阅读

随笔分类 -  java底层

JVM,GC
摘要:对于不同的Jvm及不同的jdk版本内存模型不同 内存区域名称作用参数异常分析方法解决方案 Heap 堆内存 存储对象 -Xms -Xmx Java.lang.OutOfMemeoryError:Java heap space 使用内存分析工具查看问题 1.调大-Xmx,2.优化代码 Method A 阅读全文
posted @ 2019-08-07 16:52 白露~ 阅读(191) 评论(0) 推荐(0) 编辑

摘要:需要提前了解的知识点: JVM内存模型 JVM垃圾回收算法 下图是JVM内存区域划分的逻辑图 JVM内存区域逻辑图 从图中我们大概了解JVM相关的内存区域。 JVM内存包括区域 Heap(堆区) New Generation(新生代) Eden Survivor From Survivor To O 阅读全文
posted @ 2019-08-07 14:56 白露~ 阅读(2957) 评论(0) 推荐(0) 编辑

摘要:堆内存设置 原理 JVM堆内存分为2块:Permanent Space 和 Heap Space。 Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。 Heap = { Old + NEW = {Ed 阅读全文
posted @ 2019-08-07 14:34 白露~ 阅读(1029) 评论(0) 推荐(0) 编辑

摘要:首次运行公司项目,出现了内存溢出,具体出现java.lang.OutOfMemoryError: PermGen space和java.lang.OutOfMemoryError:GC overhead limit exceeded异常 调整运行时JVM内存大小主要有两种方式: 1,在Eclipse 阅读全文
posted @ 2019-08-07 14:20 白露~ 阅读(1275) 评论(0) 推荐(0) 编辑

摘要:堆内存是Java进程的重要组成部分,几乎所有与应用相关的内存空间都和堆有关。现在主要介绍与堆内存相关的参数设置,这些参数对Java虚拟机中非常重要的,也是对程序性能有着重要的影响。让你彻底脱离OOM内存溢出等等带来的程序崩溃。 1、 -Xms 初始堆内存大小,当Java进程启动时,虚拟机会分配一块初 阅读全文
posted @ 2019-08-07 14:18 白露~ 阅读(1860) 评论(0) 推荐(0) 编辑

摘要:链接:https://juejin.im/post/5c94a123f265da610916081f JVM 配置常用参数 堆参数 回收器参数 如上表所示,目前主要有串行、并行和并发三种,对于大内存的应用而言,串行的性能太低,因此使用到的主要是并行和并发两种。并行和并发 GC 的策略通过 UsePa 阅读全文
posted @ 2019-08-07 14:15 白露~ 阅读(1074) 评论(0) 推荐(0) 编辑

摘要:1、设置分配的内存大小 -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M -vmargs 说明后面是VM的参数,所以后面的其实都是JVM的参数了 -Xms128m JVM初始分配的堆内存 -Xmx512m JVM最大允许分 阅读全文
posted @ 2019-08-07 14:10 白露~ 阅读(6160) 评论(0) 推荐(0) 编辑

摘要:jvm setting的参数确实比较多(Oracle官网Java HotSpot VM Options),但是作为一名java开发者,那几个最常用最基本的参数设置和意义一定要死记和理解。这里推荐一个网站http://jvmmemory.com/在上面你可以方便的设置jvm的参数(当然这个网站上也是有 阅读全文
posted @ 2019-08-07 13:10 白露~ 阅读(2195) 评论(0) 推荐(0) 编辑

摘要:在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。堆的内存 阅读全文
posted @ 2019-08-07 13:08 白露~ 阅读(26706) 评论(0) 推荐(3) 编辑

摘要:转载。 https://blog.csdn.net/weily11/article/details/80529129 一、JVM调优的监控方法 jvm在对进行问题排查,线程等关注问题,在理解jvm的内存分配和垃圾回收,java类的编译和加载等等理论知识的前提下要学会使用工具去观察jvm中的实际场景下 阅读全文
posted @ 2019-08-02 18:34 白露~ 阅读(548) 评论(0) 推荐(0) 编辑

摘要:JVM性能调优方法和步骤1.监控GC的状态2.生成堆的dump文件3.分析dump文件4.分析结果,判断是否需要优化5.调整GC类型和内存分配6.不断分析和调整JVM调优参数参考 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。1.Full GC会对整个堆进行整理,包括Y 阅读全文
posted @ 2019-08-02 18:21 白露~ 阅读(4156) 评论(0) 推荐(0) 编辑

摘要:JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升.原因是: 当虚拟机运行在-client模式的时候,使用的是一个代号为C1的轻量级编译器, 而-server模式启动的虚拟机采用相对重量级,代号为C2的编译器 阅读全文
posted @ 2019-08-02 18:01 白露~ 阅读(810) 评论(0) 推荐(0) 编辑

摘要:1、设置分配的内存大小 -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M -vmargs 说明后面是VM的参数,所以后面的其实都是JVM的参数了 -Xms128m JVM初始分配的堆内存 -Xmx512m JVM最大允许分 阅读全文
posted @ 2019-08-02 17:50 白露~ 阅读(889) 评论(0) 推荐(0) 编辑

摘要:大多数 JVM 将内存区域划分为 Method Area(Non-Heap)(方法区),Heap(堆),Program Counter Register(程序计数器), VM Stack(虚拟机栈,也有翻译成JAVA 方法栈的),Native Method Stack (本地方法栈) 其中Metho 阅读全文
posted @ 2019-08-02 17:46 白露~ 阅读(606) 评论(0) 推荐(1) 编辑

摘要:很多情况下,都会出现dump这个字眼,java虚拟机jvm中也不例外,其中主要包括内存dump、线程dump。 当发现应用内存溢出或长时间使用内存很高的情况下,通过内存dump进行分析可找到原因。 当发现cpu使用率很高时,通过线程dump定位具体哪个线程在做哪个工作占用了过多的资源。 首先,内存d 阅读全文
posted @ 2019-07-30 15:36 白露~ 阅读(3017) 评论(0) 推荐(0) 编辑

摘要:目前主流的跨语言异构模块通信方案有很多种,比如: 1、跨语言的RPC调用(Apache Thrift):它是Facebook贡献给Apache基金会的开源项目,旨在构建跨语言平台的通信方案。目前它支持非常多种语言,其中当然包括C/C++和Java。Thrift内置一个语言编译器,可以根据Thrift 阅读全文
posted @ 2019-05-23 20:58 白露~ 阅读(778) 评论(0) 推荐(0) 编辑

摘要:1. JNA简单介绍 先说JNI(Java Native Interface)吧,有过不同语言间通信经历的一般都知道,它允许Java代码和其他语言(尤其C/C++)写的代码进行交互,只要遵守调用约定即可。首先看下JNI调用C/C++的过程,注意写程序时自下而上,调用时自上而下。 可 见步骤非常的多, 阅读全文
posted @ 2019-05-23 20:55 白露~ 阅读(1742) 评论(0) 推荐(0) 编辑

摘要:数据同步需要依赖锁,那锁的同步又依赖谁?synchronized给出的答案是在软件层面依赖JVM,而Lock给出的方案是在硬件层面依赖特殊的CPU指令,大家可能会进一步追问:JVM底层又是如何实现synchronized的? 本文所指说的JVM是指Hotspot的6u23版本,下面首先介绍synch 阅读全文
posted @ 2019-05-16 19:35 白露~ 阅读(793) 评论(0) 推荐(0) 编辑

摘要:一、Java中synchronized关键字的作用 总所周知,在并发环境中多个线程对同一个资源进行访问很可能出现脏读等一系列线程安全问题。这时我们可以用加锁的方式对访问共享资源的代码块进行加锁,以确保同一时间段内只能有一个线对资源进行访问,在它释放锁之前其他竞争锁的线程只能等待。而synchroni 阅读全文
posted @ 2019-05-16 19:33 白露~ 阅读(3942) 评论(0) 推荐(0) 编辑

摘要:转载。 https://blog.csdn.net/fly910905/article/details/79765381 同步代码块,同步方法,或者是用java提供的锁机制,我们可以实现对共享资源变量的同步控制。 技术点: 1、线程与进程: 在开始之前先把进程与线程进行区分一下,一个程序最少需要一个 阅读全文
posted @ 2019-05-16 18:11 白露~ 阅读(2364) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示