
JVM
文章平均质量分 77
不清不慎
热爱编程,热爱生活。
展开
-
JVM内存分配与管理详解
概述了解C++的程序员都知道,在内存管理领域,都是由程序员维护与管理,程序员用于最高的管理权限,但对于java程序员来说,在内存管理领域,程序员不必去关心内存的分配以及回收,在jvm自动内存管理机制的帮助下,不需要想C++一样为每一个new操作去编写delete/free代码,这一切交给jvm,但正是这一切都交给了jvm,一旦出现内存泄漏与溢出,如果不了jvm,那么对于程序的编写与调试将会非常原创 2018-01-23 16:17:58 · 12455 阅读 · 1 评论 -
【Spark性能优化】JVM调优原理概述以及降低cache内存占比
在Spark性能优化中包括几大块,前面主要讲述了常用的调优操作,比如RDD持久化,序列化等操作,本篇文章讲述另一块调优点,JVM调优,首先来了解一下JVM调优的原理。JVM调优原理概述了解JVM的程序员的都知道,JVM被划分为几个部分,比如虚拟机栈,本地方法栈,堆内存等。这里JVM调优主要针对堆内存,因此,我们着重介绍堆内存。在JVM中,堆内存一般存放创建的一个对象。在我们常用...原创 2018-08-19 16:54:17 · 360 阅读 · 0 评论 -
【JVM实战】JVM常用参数
在虚拟机运行过程中,如果可以跟踪系统的运行状态,那么对于问题的故障排查会有一定帮助,本篇文章主要总结一些常用的参数,这样就可以在系统能够运行时监控垃圾回收,便于分析。主要参数如下:-XX:+PrintGC 打印GC日志-XX:+PrintGCDetails 打印详细的GC日志-XX:+PrintHeapAtGC 打印堆内存GC前后的信息-XX:+PrintGC...原创 2019-05-14 16:46:57 · 343 阅读 · 0 评论 -
【JVM实战】再谈GC算法
JVM GC算法,对于了解JVM的程序员,应该都不会陌生,在这篇文章中,整理一下常见的GC算法分享给大家。GC算法复制算法标记清除算法(Mark-Sweep)标记压缩算法(Mark-Compact)分代算法(Genarational Collection)分区算法(Region 主要在G1垃圾收集器中使用)复制算法其核心思想是:将内存划分为两块,每次只使用其中的一块,在垃圾回收...原创 2019-05-17 16:15:33 · 294 阅读 · 0 评论 -
【JVM实战】类的加载机制
所谓虚拟机类的加载机制,就是把一个描述类的class文件加载到内存当中,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的java类型的过程。一个类从被加载到虚拟机内存开始,到卸载出内存为止,它的主要生命周期有:加载、连接、初始化。而连接过程又被分为验证、准备、解析这几个过程。所以整个生命周期过程如下:加载、验证。准备、解析、初始化、使用和卸载这7个 过程。下面我们讨论它的主要过...原创 2019-05-23 16:09:41 · 371 阅读 · 0 评论 -
【JVM实战】如何防止OOM内存溢出?
Java开发者们最为头疼的问题就是线上常常会抛出OOM异常,有人说,这肯定是内存不够用了啊,扩大内存容量不就可以了嘛,但是内存是需要代价的,不能无限的扩展,虽然JVM为我们管理内存,保证了内存的合理回收,但是如果我们对它的底层了解的够透彻,编写出更加健壮的程序,就可以降低成本,充分利用资源,减少线上故障带来的损失。在学习如何防止OOM之前,我们首先要知道什么情况下会发生OOM?1.堆溢出堆是...原创 2019-07-27 19:06:13 · 1804 阅读 · 0 评论 -
【JVM实战】GC回收器详解
在Java虚拟机中,GC回收器不仅仅只有一种,在哪一块内存区域以及场景使用什么垃圾回收器,对于我们编写的程序的性能都有着至关重要的影响,因为,如果我们熟悉每一个GC回收器的运行机制就可以给我们的程序的性能带来很大的提升,本篇文章中,我们来探究一下每一种GC回收器的结构原理。首先,在JVM中,总共有以下几种GC回收器:新生代串行回收器老年代串行回收器新生代ParNew回收器新生代Para...原创 2019-08-11 12:58:02 · 1168 阅读 · 1 评论