- 博客(9)
- 收藏
- 关注
原创 jvm内存分区
jvm内存分为以下几个区方法区与java堆一样,多线程共享。存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。方法区在JVM中也是一个非常重要的区域,它与堆一样,是被线程共享的区域。在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。 在Class文件中除了类的字段、方法
2016-08-26 21:18:24
625
原创 jvm GC回收算法
如何判断对象已死引用算法对对象中添加一个引用计数器,每当有一个地方引用它,引用计数器加1。任何时候对象的引用计数器为0,则表示对象不会再被使用,可以回收该部分内存弊端:若存在两个对象,A,B。A引用了B,B引用了A。导致的结果是AB的引用计数器永远不为0,永远无法回收根搜索算法(jvm使用的算法)通过名为“GC Roots”的对象作为起始点,想下搜索。搜索路径称
2016-08-26 21:17:13
791
原创 JVM垃圾回收算法
一、标记清除法顾名思义,分为标记和清除两个步骤。首先标记所有需要回收的对象,在标记后统一回收所有被标记的对象如下图,缺点有两个:效率问题,标记和清楚的效率都不高 空间问题:标记清楚之后产生大量不连续的空间二、复制算法直接按内存的容量,将内存空间一分为二,每次都只用其中的一半,另一半保留。放一块内存用完之后,直接将还存活的对象复制到另一块内存上,再把原来的空间
2016-08-26 21:10:03
536
原创 JVM垃圾收集器
HotSpot收集器一、Serial收集器特点:stop the world增是jdk1.3.1之前,新生代收集器的唯一选择,单线程处理,且要求所有用户线程都暂停。但是并不意味着其就是老而无用的,他也有着独特的优势,简单高效。他依然是在client模式下,新生代默认的收集器。因为其没有线程交互的开销,停顿时间完全可以控制在几十毫秒至一百毫秒二、ParNew收集器
2016-08-26 21:08:10
1163
转载 JVM参数详细列表
-client :设置JVM使用client模式,特点启动较快(神机不明显(I5/8G/SSD))-server :设置JVM使用server模式。64位JDK默认启动该模式-agentlib:libname[=options] :用于加载本地的lib-agentlib:hprof :用于获取JVM的运行情况-agentpath:pathnamep[=options] :加载制
2016-08-26 21:06:48
5375
原创 JVM回收方法区
很多人习惯称方法区为永久代(hotspot以永久代来实现方法区)java虚拟机规范中提到:可以不要求虚拟机在方法区实现垃圾收集。而且在方法区的垃圾回收“性价比”一般比较低。在堆中,尤其是在年轻的,一次垃圾回收一般可以回收70-95%的空间永久代的垃圾回收分为两部分内容:废弃常量、无用的类 回收常量与java堆的对象回收非常相似。“没有地方引用”类回收需要满足
2016-08-26 21:05:12
2228
原创 druid overlord集群datasouce接入
核心节点overlordmiddleManagerbrokehistoricalcoordinator由overlord节点统一管理,负责接收任务,分发任务给middleManager节点,middleManager启动task执行一、提交任务http://:/druid/indexer/v1/task #提交任务eg:curl -X
2015-10-23 18:27:28
2845
1
原创 druid数据存储原理介绍
druid 数据存储分为三部分timestamp、dimensions、metrics其中,timestamp、metrics部分是采用lz4直接压缩但是dimensions部分需要支持过滤查询以及分组查询。所以dimensions部分的每个维度都采用了以下三种数据结构做转码,存储A dictionary that maps values (which are alwa
2015-10-23 18:26:09
3764
原创 druid.io sql支持
参考地址:http://druidwithsql.tumblr.com/post/98578718282/a-first-look-at-druid-with-sql download: git clone git@git.corp.yahoo.com:srikalyan/Sql4D.git make install:mvn clean
2015-09-17 23:13:41
3105
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人