block默认是存储在栈内存中的,需要做一些操作才能到堆中MRC情况下-------------------这种情况下block创建以后需要做block_copy()操作才能复制到堆中,如果block在栈中,是不会对block内使用的对象做操作的但是如果你的block已经拷贝到了堆中,你就要注意了,...
分类:
其他好文 时间:
2014-07-30 03:16:03
阅读次数:
218
2014年7月29日 buddy分配算法
内核需要为分配一组连续的页框提供一种健壮、高效的分配策略。分配连续的页框必须解决内存管理中的外碎片(external fragmentation)。频繁的请求和释放不同大小的一组连续页框,必然导致分配页框的块分算来许多小块的空闲页框无法被一次性大量分配使用。
linux内核采用著名的伙伴系统算法来解决外碎片问题。该算法的核心思想是把所有的空闲页框分成1...
分类:
系统相关 时间:
2014-07-30 01:04:12
阅读次数:
378
一种动态内存管理Malloc/Free服务的链表实现 , 动态内存分配与回收服务,Malloc/Free的实现,最主要的核心内容是单向链表。其数据结构定义如下,一整段内存被SRAM或SDRAM,DRAM由系统的内存管理模块统一管理,这里主要是堆的管理:
typedef struct A_BLOCK_LINK
{
struct A_BLOCK_LINK *pxNextFre...
分类:
其他好文 时间:
2014-07-29 13:21:31
阅读次数:
433
一,redis内存管理介绍 redis是一个基于内存的key-value的数据库,其内存管理是很重要的,为了屏蔽不同平台之间的差异,以及统计内存占用量等,redis对内存分配函数进行了一层封装,程序中统一使用zmalloc,zfree一系列函数,其相应的源代码在src/zmalloc.h和src/z...
分类:
其他好文 时间:
2014-07-29 12:31:06
阅读次数:
262
Redis常用数据类型Redis最为常用的数据类型主要有以下五种:StringHashListSetSorted set在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部内存管理中是如何描述这些不同数据类型的:首先Redis内部使用一个redisObject对象来表示所有的key和v...
分类:
其他好文 时间:
2014-07-29 11:45:26
阅读次数:
278
windows系统磁盘文件存储:
分区格式:NTFS / FAT32
GetSystemDirectory();//获取系统路径
GetWindowsDirectory();//获取windows路径
GetCurrentDirectory();//获取当前工作目录
SetCurrentDirectory();//修改当前工作目录
CreateFile/ReadFile/WriteFi...
分类:
编程语言 时间:
2014-07-28 15:58:13
阅读次数:
393
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------一、内存管理1.为什么要用内存管理:移动设备的内存极其有限,每个app所能占用的内存是有限制的。当app所占用的内存较多时,系统会发出内存警告,这时...
分类:
其他好文 时间:
2014-07-28 11:24:30
阅读次数:
256
ORACLE数据库所使用的内存主要涉及到两个方面:PGA和SGA。
1.1 PGA管理
PGA指的是程序全局区(Program Global Area),是服务器进程(Server Process)使用的一块包含数据和控制信息的内存区域,PGA是非共享的内存,在服务器进程启动或创建时分配(在系统运行时,排序、连接风操作也可能需要进一步的PGA分配),并为Server Process排他访问,所以PGA中的数据结构并不需要通过latch来保护;
1.2 什么是PGA
进程的创建通常有两种模式:专用...
分类:
数据库 时间:
2014-07-28 00:19:19
阅读次数:
296
1.2.2 UGA和CGA
UGA(用户全局区)由用户会话数据、游标状态和索引区组成。在共享服务器模式下,一个共享服务进程被多个用户进程共享,此时UGA是Shared Pool或Large Pool的一部分,而在专用服务器模式下,UGA则是PGA的一部分。
不考虑Shared Server模式,在Dedicated模式下,PGA与UGA关系,就如同Process和Session的关系,PGA是服务于进程的内存结构,包含进程信息;而UGA是服务于会话的,它包含的是会话的信息。UGA中包含如下信息:...
分类:
数据库 时间:
2014-07-28 00:18:39
阅读次数:
410
SGA管理
SGA指系统全局区(System Global Area),是一块用于加载数据、对象并保存运行状态和数据库控制信息的一块内存区域,在数据库实例启动时分配,当实例关闭时释放,每个实例都拥有自己的SGA区。
在第一章曾经?到,当数据库启动到nomount状态时,SGA已经分配,同时启动后台进程,在SQL*Plus中通过show sga命令可以看到SGA的分配情况:
sys@felix SQL>show parameter sga
NAME ...
分类:
数据库 时间:
2014-07-28 00:16:59
阅读次数:
350