利用默认的内存管理函数new/delete或malloc/free在堆上分配和释放内存会有一些额外的开销。
系统在接收到分配一定大小内存的请求时,首先查找内部维护的内存空闲块表,并且需要根据一定的算法(例如分配最先找到的不小于申请大小的内存块给请求者,或者分配最适于申请大小的内存块,或者分配最大空闲的内存块等)找到合适大小的空闲内存块。如果该空闲内存块过大,还需要切割成已分配的部分和较小的空...
分类:
其他好文 时间:
2014-05-15 02:56:28
阅读次数:
227
散列表(Hash table,也叫哈希表),是根据关键字(Key value)而直接访问在内存存储位置的数据结构。也就是说,它通过把键值通过一个函数的计算,映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。
一个通俗的例子是,为了查找电话簿中某人的号码,可以创建一个按照人名首字母顺序排列的表(即建立人名x到首字母F(x)的一个函数关系),在首...
分类:
编程语言 时间:
2014-05-15 02:27:50
阅读次数:
497
电脑CUP处理程序的运行。cpu里分为一级缓存,二级缓存,还有三级缓存,之后是内存里的东西。
栈存放在一级缓存里,所以cup调用速度最快,处理起来也效率也最高,但是大小很小,能存放的东西很少。
堆存放在二级缓存里,离cpu不一级缓存远一点,但是存储的数据量更大一些。 C#里值类型创建的...
分类:
其他好文 时间:
2014-05-14 22:51:38
阅读次数:
405
http://www.jb51.net/article/33398.htmString的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间,StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产...
分类:
编程语言 时间:
2014-05-14 22:30:10
阅读次数:
329
在与Android交互过程中,因为Android是从低位往高位读,iOS是从高位往低位读,所以交互数据需要进行转换。
/*
* convert big endian to little endian in C
*/
uint16_t swap_uint16( uint16_t val );
int16_t swap_int16( int16_t val );
uint32_t s...
分类:
移动开发 时间:
2014-05-14 21:38:51
阅读次数:
407
题意:移除数组中出现的给定元素,并返回移除元素数组长度。要求在数组上操作
思路:遍历数组,将除给定元素外的其他元素赋值给“新数组”,不过这个“新数组”还是在原来的“旧数组”的内存空间
因为遍历旧数组的下标总大于等于新数组的下标,所以赋值并不会影响到还没有遍历到的元素
复杂度:时间O(n), 空间O(1)...
分类:
其他好文 时间:
2014-05-14 21:35:52
阅读次数:
257
DSP访问外存时内存保护的问题,原因是CPU访问了自己没有访问权限的外部内存(如share memory即MSM或者DDR3,相对于corePac内部的L1,L2内存而言),如CPU访问DDR3中的无权限内存时(即在当前CPU的配置中,没有设置对该内存的访问权限),硬件会触发MDMA bus error event(VbusM error event 110,CPU访问corePac内部资源L1,...
分类:
其他好文 时间:
2014-05-14 21:23:30
阅读次数:
300
IPC进程间通信+邮槽MailSlot
IPC(Inter-Process Communication,进程间通信)。
现代计算机采用虚拟内存机制,为进程提供独立的足够大的地址空间,处于安全目的,一个进程不具有特殊的权限,是无法访问另一个进程的内存空间,进程间相互隔绝。进程间通信IPC就需要特别的机制来实现,邮槽MailSlot是常用的IPC方法之...
分类:
其他好文 时间:
2014-05-14 20:35:09
阅读次数:
432
网卡驱动为每个新的接口在一个全局的网络设备列表里插入一个数据结构.每个接口由一个结构 net_device 项来描述, 它在 里定义.每一个接口必须动态分配内存。...
分类:
系统相关 时间:
2014-05-14 19:48:00
阅读次数:
417