(1)、hbase.regionserver.handler.count:该设置决定了处理RPC的线程数量,默认值是10,通常可以调大,比如:150,当请求内容很大(上MB,比如大的put、使用缓存的scans)的时候,如果该值设置过大则会占用过多的内存,导致频繁的GC,或者出现OutOfMemor ...
分类:
其他好文 时间:
2019-12-04 20:28:21
阅读次数:
76
最近想整理一下GC相关的知识和经验,在整理之前下决心先整理一下jvm的内存结构,后续会持续更新。 jvm内存结构重要由两部分组成:线程共享区域与线程私有区域,如下图所示: 其中方法区和堆为线程共享区域,栈与程序计数器为线程私有区域。与操作系统定义的堆栈类似,栈用来存储方法调用时产生的临时变量以及寄存 ...
分类:
其他好文 时间:
2019-12-03 19:57:09
阅读次数:
75
1. 堆内存结构 Java堆从GC的角度可以细分为:新生代(Eden区、From Survivor区和To Survivor区)和老年代。 1.1 新生代 1.2 老年代 2.垃圾回收机制算法 2.1 垃圾回收机制 2.2 对象回收判断 2.2.1 引用计数算法 引用计数法就是如果一个对象没有被任何 ...
分类:
其他好文 时间:
2019-12-01 22:40:00
阅读次数:
131
一.javase 1.jdk1.8新特性 搜索速度更快 – 红黑树 行为参数化代码更少 – Lambda 强大的Stream API – Stream 便于并行 – Parallel 最大化减少空指针异常 – Optional 2.JVM结构原理、GC工作机制详解 JVM主要包括四个部分 1.类加载 ...
分类:
其他好文 时间:
2019-12-01 00:27:44
阅读次数:
197
一、什么是System.gc()?System.gc()是用Java,C#和许多其他流行的高级编程语言提供的API。当它被调用时,它将尽最大努力从内存中清除垃圾(即未被引用的对象)。名词解释:GC,GarbageCollection,垃圾回收,下文会经常使用。二、谁可以调用System.gc()?System.gc()可以从应用程序堆栈的各个部分调用:您自己开发的应用程序可以显式的调用System
分类:
编程语言 时间:
2019-11-30 22:45:45
阅读次数:
127
一、 判断对象“已死” 1. 引用计数法:给对象中添加一个引用计数器,每当有一个地方引用他,计数器值+1;当引用失效,计数器 -1。计数器为0则表示,对象没有被使用。 缺陷:循环引用问题。 2. 可达性分析算法:通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过 ...
分类:
其他好文 时间:
2019-11-30 22:43:31
阅读次数:
96
1.首先我们要知道jvm 对于对象的管理分为四种 强引用 软引用 弱引用 虚引用 偷来的图片 : 2. 既然在两次 gc 之间 弱引用可以进行存活,那么我们就可以实现缓存 代码 java 令人头疼的设计模式 解读 : 单例 双判断加锁 ,接口实现 两个get put ,对于所有的对象使用弱引用 存储 ...
分类:
其他好文 时间:
2019-11-30 16:33:49
阅读次数:
67
跟踪垃圾回收 -XX:PrintGC -XX:+PrintGCDetails 更详细的信息,新生代GC还是老生代GC,永久区的GC,gc的时间 -XX:+PrintHeapAtGC : 每次gc前后分别打印堆信息 -XX:+PrintGCTimeStamps 分析gc发生的时间,在每次gc时额外输出 ...
分类:
其他好文 时间:
2019-11-29 11:08:27
阅读次数:
71
引用计数法 :Java虚拟机并未采用这种算法 缺点:1.对象的循环引用 2.伴随加法和减法操作,有一定的性能开销 -可达对象 -不可达对象 : 通过根对象进行引用搜索 复制算法:通常存活对象很少,这个算法效率高,也没有空间碎片,但是内存折半 标记清除法:会产生空间碎片 标记压缩法:老年代存活对象多, ...
分类:
编程语言 时间:
2019-11-29 10:41:24
阅读次数:
94
更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680 1、对象优先在Eden分配 大多情况,对象在新生代Eden区分配。当Eden区没有足够空间进行分配时,虚拟机将进行一次Minor GC。虚拟机提供了参数 -XX:+PrintGCD ...
分类:
编程语言 时间:
2019-11-28 13:00:33
阅读次数:
76