RESCAN

JVM垃圾回收算法

狂风中的少年 提交于 2020-12-03 15:27:52
一、垃圾收集算法 1.1 标记-清除 首先标记处需要清理的对象,然后回收所有被标记的对象,缺点在于:空间碎片,标记清除后内存中仍存在地址不连续的对象(内存碎片),如果内存碎片过多,会导致为大对象分配空间时无可用空间,触发又一次的GC。 1.2 标记-整理 当标记完待回收对象后,让所有存活的对象都向一端移动,然后直接清理掉端边界意外的内存,**不是直接对可回收对象进行清理。**缺点是整理需要花费一定时间。 1.3 复制 复制算法将内存划分为相等的两块,每次只使用其中一块。当这一块内存用完时,就将还存活的对象复制到另一块上面,然后将已经使用过的内存空间一次清理掉。缺点是内存使用率降为一半,对象存活率较高时,需要多次进行复制操作,效率变低。 1.4 分代收集算法 新生代采用复制算法,在老年代采用“标记-清除”或者“标记-整理”算法。新生代分为Eden区和两个相同大小的Survivor区, 所有新创建的对象都分配在Eden区域中 。当Eden区域满后会触发minor GC,将Eden区仍然存活的对象复制到其中一个Survivor区域中,另外一个Survivor区中的存活对象也复制到这个Survivor区域中,并始终保持一个Survivor区是空的。 一般建议Young区地大小为整个堆的1/4 。下面分别展示了新生代初始化-->Young GC-->执行完毕时的状态。使用了复制算法

【转载】bitcoin全节点部署及bitcoind bitcoin-cli命令使用解释

烂漫一生 提交于 2020-04-28 15:35:09
服务器配置: 操作系统: ubuntu 16.04 CPU: 4U 内存: 16G #一般来说4G就够,但如果要查历史记录,需要加载完整的交易索引表-tindex,这导致需要8G+的内存 硬盘: 500G #比特币从08年开始运行,已经积累了大量数据,区块链内容大小达210G。 带宽: 10MB+ 安装部署: 下载地址: https://bitcoincore.org/en/download/ root@wallet-test1:/data # tar xf bitcoin-0.17.1-x86_64-linux-gnu.tar.gz root@wallet-test1:/data # ln -s bitcoin-0.17.1 bitcoin #用软链接的方式在升级程序时,可不用重新设置环境变量 root@wallet-test1: /data# mkdir -p coin/btccoin/ #数据存储目录 root@wallet-test1:/data # vim /etc/profile.d/bitcoin.sh #添加环境变量 export PATH=/data/bitcoin/bin:$PATH root@wallet-test1:/data # source /etc/profile.d/bitcoin.sh #加载环境变量 配置文件: -conf=<file>

OpenStack中的Multipath faulty device的成因及解决(part 1)

 ̄綄美尐妖づ 提交于 2020-04-26 06:12:35
| 版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题,可以邮件:wangxu198709@gmail.com 简介: Multipath:这个多路径软件在Linux平台广泛使用,它的功能就是可以把一个快设备对应的多条路径聚合成一个单一的multipath device。主要目的有如下两点: 多路径冗余(redundancy):当配置在 Active/Passive 模式下,只有一半的路径会用来做IO,如果IO路径上有任何失败(包括,交换机故障,线路故障,后端存储故障等),可以自动切换的备用路线上,对上层应用做到基本无感知。 提高性能(Performance): 当配置在 Active/Active 模式下,所以路径都可以用来跑IO(如以round-robin模式),可以提高IO速率或者延时。 multipath不是本文的重点,如有需要,请移步: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/dm_multipath/setup_overview 安装及使用: Multipath:这个多路径软件在Linux平台广泛使用,在Debian/Ubuntu平台可以通过 sudo apt-get install

Linux MMC原理及框架详解

半腔热情 提交于 2020-04-19 17:31:59
目录 1. 背景 1.1基本概念 1.2 规范简介 1.2.1 卡的规范 1.2.2 总线规范 2. eMMC原理介绍 2.1 eMMC内部结构简介 2.1.2 Flash Controller 2.1.3 Host Interface 2.2分区管理 2.3总线协议 3. Linux MMC软件框架流程 3.1软件架构 3.2工作流程 参考文档 本文参考资料主要来源于网络,原文网址会在文末附上。整理本文的原因,一是为了自己学习记录;二也是为了分享出来帮助别人。如有打扰,尽请谅解。 1. 背景 1.1基本概念 MMC是MultiMediaCard的简称,从本质上看,它是一种用于固态非易失性存储的内存卡(memory card)规范,定义了诸如卡的形态、尺寸、容量、电气信号、和主机之间的通信协议等方方面面的内容。 从1997年MMC规范发布至今,基于不同的考量(物理尺寸、电压范围、管脚数量、最大容量、数据位宽、clock频率、安全特性、是否支持SPI mode、是否支持DDR mode、等等),进化出了MMC、SD、microSD、SDIO、eMMC等不同的规范(如下面图片1所示)。虽然乱花迷人,其本质终究还是一样的,丝毫未变,这就是Linux kernel将它们统称为MMC的原因。 图1.MMC/SD/SDIO演进图 关于该图片,这里强调几点(其它的,大家可参考[1][2]

Manjaro字体+wps字体

不想你离开。 提交于 2020-03-07 11:44:08
manjaro自带中文字体有缺陷,wps字体自带宋体等字体需要替换才能使用,因此安装以下字体内容。 安装wps中文语言包 sudo pacman -S wps-office-mui-zh-cn Manjaro默认的中文显示效果非常差,不美观也就罢了,还会有很多奇形怪状的字形(比如“门”,“画”等字)出现。配置字体效果非常耗费时间,如果想仔细折腾,可以参考如下几个网页: Localization/Simplified Chinese (简体中文) Font configuration (简体中文) Font Configuration/Chinese (简体中文) 我参考上面的第3个链接中的配置,做了点小修改,效果基本能够接受。先安装如下字体: sudo pacman -S ttf-roboto noto-fonts ttf- dejavu # 文泉驿 sudo pacman -S wqy-bitmapfont wqy-microhei wqy-microhei-lite wqy- zenhei # 思源字体 sudo pacman -S noto-fonts-cjk adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts 创建文件 .config/fontconfig/fonts.conf ,加入下面的配置: <

JVM 的垃圾回收器,你真的搞懂这些了吗?

ⅰ亾dé卋堺 提交于 2019-12-04 15:36:49
JVM的GC经过多年的发展,大家对 Minor GC、 major GC的理解并不完全一致,所以我不打算在本文中使用这个概念。我把GC大概分为一下4类: Young GC:只是负责回收年轻代对象的GC; Old GC:只是负责回收老年代对象的GC; Full GC:回收整个堆的对象,包括年轻代、老年代、持久带; Mixed GC: 回收年轻代和部分老年代的GC (G1); 因为笔者目前使用G1还是比较少的,所以本文不打算将G1。 垃圾回收器算法 目前主流垃圾回收器都采用的是可达性分析算法来判断对象是否已经存活,不使用引用计数算法判断对象时候存活的原因在于该算法很难解决相互引用的问题。 标记-清除算法( Mark-Sweep ) 标记-清除算法由标记阶段和清除阶段构成。标记阶段是把所有活着的对象都做上标记的阶段;清除阶段是把那些没有标记的对象,也就是非活动对象回收的阶段。通过这两个阶段,就可以令不能利用的内存空间重新得到利用。 从 标记-清除算法我们可以看出, 该算法不涉及对象移动 ,但是 可能会产生内存碎片化 问题。空间碎片太高可能会导致程序运行时需要分配较大内存时候,无法找到足够的连续内存,需要其他垃圾回收帮助回收内存。 复制算法(Copying) 复制算法 内存空间分为两块区域: From、to ,每次只使用其中一块