自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 ptmalloc源码阅读-malloc_chunk

内存管理不外乎三个层面,用户管理层,C运行时库层,操作系统层 目前轮子处于运行时库层,制作这个轮子的目的是为了了解底层内存分配是如何实现的,后面肯定主要是实现用户管理层。 常见C内存管理程序: Doug Lea Malloc:Doug Lea Malloc实际上是完整的一组分配程序,其中包括Doug Lea的原始分配程序,GNU libc分配程序和ptmalloc。Doug Lea的分配程序

2016-01-18 22:43:28 880

原创 半边数据结构

三维网格信息分为两个部分:几何(Geometry:顶点的位置信息)信息和拓扑(Topology:点线面之间的邻接关系)信息 保存点面信息的数据结构: 1. 以面为中心(face set):储存面,每个面包含三角形的顶点的坐标值.占用大量内存 2. 共享顶点:顶点坐标数组,三角面片为顶点索引,没有邻接关系。 3. 基于面连接 4. 基于边连接 5. 邻接矩阵 6. 角表 7. 半边数据

2016-01-16 00:07:41 3213

原创 内存分配器三

已经实现了自己的malloc函数Imalloc,但是内存管理还是需要calloc,free,relloc函数来管理内存: calloc:在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针,并将内存空间置0,在32位机上是4bytes一个内存块大小;如果分配不成功,返回NULL。 void *Icalloc(size_t number,size_t size){

2016-01-14 19:22:45 382

原创 内存分配器二

虽然在IMalloc.c实现了内存申请的工作,但是这比实际中malloc函数的功能差了很多。必须要将堆中申请的内存管理起来,才能更好地实现malloc函数以及后面的free和realloc函数。 本节内容主要介绍完整实现malloc的功能,可以用于内存块管理。 需要给每个内存块添加额外的信息(meta-data):内存块的大小,下一个内存块的地址,当前内存块是否可用。meta-data应该在ma

2016-01-13 17:07:38 384

原创 内存分配器一

glibc内存管理学习 http://www.cnblogs.com/tianchi/archive/2012/08/02/2620634.html x86平台Linux进程内存布局: text:ELF格式程序代码 data:程序运行时就能确定的数据,可读可写 bss:没有初始化的全局变量和静态表里 heap stack:由编译器自动分配释放,存放函数参数、局部变量等 Mmap:映射

2016-01-12 22:08:55 374

原创 大教堂与集市

可能是由于译者将本书翻译得晦涩拗口,也有可能是由于自身工作阅历有限的缘故,对于本书也算是粗略浏览了一遍,也只算是学习了部分Eric的思想。 虽然书名为大教堂与集市,但是本书的大部分集中在描述集市(开源)。从开源的历史,到剖析linux以及Mozilla的成功,解释了为啥一些组织和公司会选择将自己开发的软件进行开源。这些软件并不是通过直接销售软件获得经济利益的,而是通过利用这些软件提供的服务来获取相

2016-01-11 14:55:11 2615

原创 gdb调试常用命令

在编译时要加上-g选项,生成的可执行文件才能用gdb进行源码级调试。使用gdb执行生成的文件。 help:可以查看命令类别 list:命令从第一行开始列出源代码,一次只会显示10行,回车可继续列出下面的代码 quit:退出 start:开始执行 n(next):控制语句一条一条执行 s(step):单步执行 bt(backtrace):查看当前函数调用的栈帧 i(info) loca

2016-01-08 23:02:18 437

原创 如何直接在unity3d中运行.net4.5等高级版本的机器码

PE格式,是微软Win32环境可移植可执行文件(如exe、dll、vxd、sys和vdm等)的标准文件格式。 普通Win32应用的PE文件里,PE格式的代码段里的代码就是程序的主要代码了,是以平台相关的机器码形式存储的;而对.NET Assembly而言,其代码主体是以MSIL(或者叫CIL)的中间代码形式存储在PE格式的“资源”部分而不是在代码部分;其PE格式的代码段里只包含一小块“桩程序”(s

2016-01-06 18:04:31 7225 2

原创 gcc学习一

将gcc将c语言源码最终编译成能够让机器执行的机器码主要经历了4个过程,为了执行该过程将演示helloworld.c代码的编译过程,代码如下:#include<stdio.h>#define TESTint main(int argc,char **argv){ #ifdef TEST printf("test -E"); #endif

2016-01-05 22:13:55 381

原创 vim编辑器常用指令

进入vi:vi 离开:在指令模式下键入:q退出:wq 存档再离开:w filename 存入filename中==:wq切换到指令模式使用Esc键vim的三种模式:命令模式,输入模式(INSERT模式),特殊模式(最后行模式,以“:”或“/”为前导指令,出现在屏幕最下行)进入输入模式:a在光标后面插入 A在当前行末尾插入i在光标前插入   I在当前行首插入

2016-01-04 20:13:58 340

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除