在单片机中由于内存资源紧张,不可能给每个任务分配专有的内存区,尤其是涉及到通讯模块的程序,对内存的使用更是敏感。为此开发一个简单的内存管理库,对以后的开发还是有着不小的帮助的。 功能实现:内存动态分配、内存动态释放、内存碎片回收 heap.c // 内存划分:申请的一块内存分为两部分,一部分用于存储 ...
分类:
其他好文 时间:
2020-01-06 17:44:55
阅读次数:
79
1.1 如何确定垃圾 1.1.1 引用计数法 在Java中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都不为0,则说明对象不太可能再被用到,那么这个对象就是可 ...
分类:
编程语言 时间:
2019-12-19 23:11:55
阅读次数:
78
1. MySql+Memcached架构的问题 Memcached采用客户端-服务器的架构,客户端和服务器端的通讯使用自定义的协议标准,只要满足协议格式要求,客户端Library可以用任何语言实现。 Memcached服务器使用基于Slab的内存管理方式,有利于减少内存碎片和频繁分配销毁内存所带来的 ...
分类:
其他好文 时间:
2019-12-19 14:36:57
阅读次数:
139
垃圾收集算法 1、标记 清除算法 首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。缺点: 效率问题,标记和清除过程的效率都不高; 标记清除之后会产生大量不连续的内存碎片; 2、复制算法 将可用内存按容量划分为大小相等的两块,每次只使用其中的一块。当这一块的内存用完了,就将还存活 ...
分类:
编程语言 时间:
2019-12-10 13:17:11
阅读次数:
93
内存管理、用户操作和文件操作 预备知识: 1、Linux系统的内存分为物理内存和虚拟内存。物理内存是指安装在计算机当中的主存储器;虚拟内存是一段虚拟的逻辑上连续的储存空间,虚拟内存是由多个内存碎片组成,只有正在使用的虚拟内存被存放在内存上,对于暂时不使用的虚拟内存空间其实是储存在外存中。虚拟内存空间 ...
分类:
系统相关 时间:
2019-12-08 10:50:18
阅读次数:
109
知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累。不占太多时间,不停的来唤醒你记忆深处的知识点。 GC算法 1.标记清除算法 优缺点:不需要额外空间,但是遍历空间花费大,而且会产生大量内存碎片 2.复制收集算法 占用两块一样大内存,每次只用使用一块。当需要发生复制的时候,遍历一遍可达 ...
分类:
编程语言 时间:
2019-11-26 22:41:37
阅读次数:
76
参考:《深入理解JAVA虚拟机》第二版 3.3 垃圾收集算法 由于垃圾收集算法的实现涉及大量的程序细节,而且各个平台的虚拟机操作内存的方法又各不相同,只是介绍几种算法的思想及其发展过程。 3.3.1 标记 清除算法 最基础的收集算法是“标记 清除”(Mark Sweep)算法。 算法分为 标记和清除 ...
分类:
编程语言 时间:
2019-11-23 20:03:35
阅读次数:
88
2017年开始阿里HBase走向公有云,我们有计划的在逐步将阿里内部的高可用技术提供给外部客户,目前已经上线了同城主备,将作为我们后续高可用能力发展的一个基础平台。本文分四个部分回顾阿里HBase在高可用方面的发展:大集群、MTTF&MTTR、容灾、极致体验,希望能给大家带来一些共鸣和思考。 大集群 ...
分类:
其他好文 时间:
2019-11-13 14:37:35
阅读次数:
72
/proc/apm 高级电源管理(APM)版本信息及电池相关状态信息,通常由apm命令使用; /proc/buddyinfo 用于诊断内存碎片问题的相关信息文件; /proc/cmdline 在启动时传递至内核的相关参数信息,这些信息通常由lilo或grub等启动管理工具进行传递; /proc/cp ...
分类:
其他好文 时间:
2019-11-05 15:21:34
阅读次数:
115
背景 By 鲁迅 By 高尔基 说明: 1. Kernel版本:4.14 2. ARM64处理器,Contex A53,双核 3. 使用工具:Source Insight 3.5, Visio 1. 概述 本文将描述 ,内存碎片整理技术。 内存碎片分为内碎片和外碎片: 内碎片:内存页里边的碎片; 外 ...
分类:
系统相关 时间:
2019-10-27 00:34:08
阅读次数:
142