内存回收的流程 java的垃圾回收分为三个区域新生代、老年代、 永久代 一个对象实例化时 先去看伊甸园有没有足够的空间:如果有 不进行垃圾回收 ,对象直接在伊甸园存储;如果伊甸园内存已满,会进行一次minor gc;然后再进行判断伊甸园中的内存是否足够;如果不足 则去看存活区的内存是否足够;如果内存 ...
分类:
编程语言 时间:
2018-05-15 14:31:24
阅读次数:
173
1.基本内存分批策略 大多数情况在新生代Eden区分配,如果启动了本地线程分配缓冲,将按线程优先在TLAB(线程私有缓冲区)上分配.当Eden区域没有足够的空间时将发起一次Minor GC. 值得注意的是,如果一个对象过大(例如分配了一个大的byte[]数组),该对象将直接进入老年代..因为对象过大 ...
分类:
其他好文 时间:
2018-03-16 17:18:25
阅读次数:
130
Eden ——> Survivor(From ——> To) ——> Old 1、先在Eden区给新对象分配空间(大对象,很长的字符串、数组。直接分配在Old区),Eden区没有足够的空间分配时 ——> YGC; GC开始时,Eden区对象全部进入To Surivor区,From Survivor中 ...
分类:
其他好文 时间:
2018-02-11 16:16:19
阅读次数:
1069
为了方便调式程序,产品中需要在程序崩溃或遇到问题时打印出当前的调用堆栈。由于是基于Linux的ARM嵌入式系统,没有足够的空间来存放coredump文件。 实现方法,首先用__builtin_frame_address()函数获取堆栈的当前帧的地址(faddr), ×faddr(栈帧的第一个单元存放 ...
分类:
系统相关 时间:
2018-01-30 17:09:05
阅读次数:
2145
客户要求搭建一套测试库,现在环境是window下oracleRAC,使用能使用导入导出最好,但是目前是归档模式,使用导入导出风险太大,使用RMAN备份服务器上没有足够的空间。好吧,最好的方法就是RMANduplicate的方法了。先在单机环境测试一下!Oracle11g的RMANduplicate可以通过Activ..
分类:
数据库 时间:
2017-09-16 19:06:10
阅读次数:
279
一、索引分裂 1. 什么是分裂 在开始介绍之前,我们先来搞清楚什么是索引分裂吧。“索引分裂”就是索引块的分裂,当一次DML事务操作修改了索引块上的数据,但是旧有的索引块没有足够的空间来容纳新修改的数据,那么将分裂出一个新索引块,旧有块的部分数据放到新开辟的索引块上去,这个过程就称为索引块的分裂(IN ...
分类:
其他好文 时间:
2017-04-10 17:09:15
阅读次数:
173
年轻代: HotSpot JVM把年轻代分为了三部分:1个Eden区和2个Survivor区(分别叫From和To),每次新创建对象时,都会分配到Eden区,当Eden区没有足够的空间进行分配时,虚拟机将发起一次Minor GC 。这些对象经过第一次Minor GC后,如果仍然存活,将会被移到Sur ...
分类:
其他好文 时间:
2017-04-08 15:54:27
阅读次数:
796
今天是12月1号,前期用kettle做了月报自动报表的转换和作业,今天运行时候发现一个报表的程序跑起来失败,心里很纳闷,上过月刚跑的没问题,怎么会无缘无故的失败。 通过看kettle运行日志,发现一个错误,c盘left no space 也就是在系统盘上没有足够的空间存储临时表,这时候才考虑到可能是 ...
分类:
其他好文 时间:
2016-12-02 01:39:14
阅读次数:
282
我们要压缩什么?为什么进行压缩?压缩技术是如何分类的? 个人觉得我们所需要的所有资源都是我们要压缩的,因为需要所以压缩。那随之而来的问题是我们为什么要压缩。数据压缩是使用紧凑的方式宝石信息的技术或科学。对物理世界:没有足够的空间存放我们的东西,对于数字世界同样如此,随大数据时代的到来,我们的数据量也 ...
分类:
其他好文 时间:
2016-08-23 13:02:33
阅读次数:
136
关于Inode一个应用的案例就是创建文件的时候发现没有足够的空间,通过df查看呢发现实际上Used只有20%,这里也是为什么du和df查看同样一个磁盘的时候发现大小不一致(自己可以试一下肯定不一致)首先inode耗尽差生肯定是inode表没有空闲了,怎么解决???find./-name"*.log*"|xar..
分类:
系统相关 时间:
2016-06-06 01:26:03
阅读次数:
190