内存方案设计
2016-06-06 09:36:59 0 举报
内存方案设计是一项复杂的任务,需要考虑许多因素。首先,我们需要确定系统所需的内存容量。这通常取决于应用程序的需求和预期的并发用户数量。其次,我们需要考虑内存的类型和速度。不同类型的内存具有不同的性能特性,因此需要根据应用程序的需求进行选择。此外,我们还需要考虑内存的布局和组织方式,以确保数据能够高效地访问和传输。最后,在设计内存方案时,我们还需要考虑容错性和可扩展性,以便在未来需要时能够轻松地扩展系统。总之,内存方案设计是一项重要的工作,需要综合考虑多种因素才能取得成功。
作者其他创作
大纲/内容
回收内存时将内存块插回内存链表或者是使用delete/free回收
小尺寸对象,数量较多,分配和释放较为频繁
16bytes
m=128?
未找到该对象
将该对象添加到待删除资源链表的头部
待删除资源链表的长度超过了定长?
free_list[16]
在每一帧的更新阶段时,图形引擎会通知数据线程执行加载资源请求队列的请求。
大尺寸的对象,数量较少,分配和释放频率较低
每一帧的更新阶段时,图形引擎会通知数据线程执行删除资源请求队列的请求
否
128bytes
找到该对象
待删除资源链表中查找该对象?
24bytes
收到m字节的内存请求
由nedmalloc维护的24bytes定长内存池
将待删除资源链表的尾节点从链表中删除,并向删除资源请求队列添加一个删除资源的请求
是
检测通过?
对可绘制对象进行可见性检测
在正在使用资源链表中查找该对象?
返回申请的内存块
由nedmalloc维护的16bytes定长内存池
new/malloc
8bytes
...
由nedmalloc维护的8bytes定长内存池
由nedmalloc维护的128bytes定长内存池
m = (m+8-1)&~(8-1);//上调m到8的倍数
向加载资源请求的队列中添加一条加载资源的请求
从正在使用资源链表中删除该节点,并将该对象添加到待删除资源链表的头部
将该对象节点从待删除资源链表中删除,并插入到正在使用资源链表中
0 条评论
下一页