自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 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 3212

原创 内存分配器三

已经实现了自己的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 2614

原创 gdb调试常用命令

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

2016-01-08 23:02:18 436

原创 如何直接在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 7224 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 379

原创 vim编辑器常用指令

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

2016-01-04 20:13:58 340

原创 shell基础知识

总结一下今天学习shell脚本编程基础的知识点:1.      如果有一系列经常使用的Linux命令,可以把它们存储在一个文件中,shell可以读取这个文件并执行其中的命令,这样的文件称为脚本文件2.      显示信息echo+字符串例如:echo  “hello world“,使用-n可以不换行3.      变量Shell中所有的变量都被当做字符串,variable name

2015-12-29 20:32:34 379

原创 C语言培训总结

本该上周末写的总结,反而拖到了现在,发现主要原因是拖延症和干事目的性不强。以后会坚持每两天至少一篇blog的速度总结最近工作、学习、看书的东西。培训的时候时间、任务重,但总体来说是比较轻松的,明白了自己还有的不足以及编码时的优势。现在把听课时候的一些知识点分列在下面。1.      在内存使用的时候要注意三点a.它在哪(栈、堆、全局) b.多大 c何时何地释放2.      指针为形参时,

2015-12-29 00:15:36 629

原创 缩放shader 的编写-shader学习1

shader编写是在学习http://blog.sina.com.cn/s/blog_471132920101d8zf.html之后为了练手而制作。需要编写一个使贴图能够随着时间缩放的shader,选择正方形的贴图,关键是在tex2D进行纹理查询的时候,需要对原纹理的uv进行变换mapuv(float2uv,float xLength),将当前的uv变换到缩放之后查询,将边框部位设置为白色。随

2015-04-01 21:55:55 2249

原创 脚本Awake,Enable,Start执行顺序

为了知道脚本中这三个方法的调用顺序,写了一个代码如下 再在场景中建立两个物体,分别为两个物体添加脚本,如图所示 运行之后得到的结果为:  从结果可以看出,同一个脚本中的Awake和Enable是一起执行的,执行的顺序是先Awake后Enable,而所用的脚本的Start是一起执行的,而所有脚本的执行还遵循一个规律,先执行Hierachy最上面物体悬挂的脚本然后从上到下,

2014-11-07 13:50:16 1051

原创 Unity3D中的SendMessage方法与委托的使用选择

参考: http://www.cnblogs.com/xpvincent/p/3195453.htmlhttp://bbs.9ria.com/thread-256852-1-1.htmlhttp://blog.csdn.net/chiuan/article/details/7918833 以前实现GameObject.SendMessage的效果都是通过委托事件来实现的,但是在

2014-10-28 16:07:47 1709

原创 在unity3d中实现求一个三角形的外接圆

假设三角形由三个点A(x0,y0,z0)B(x1,y1,z1),C(x2,y2,z2)组成,如图所示。已知一个三角形的外接圆圆心是其两条边的中垂线的交点,则在三维空间中,圆心在过其两条边的中点并垂直直线平面ABC的相交线的中线上(则得式1,2),并且三角形的外接圆的圆心一定在平面ABC上(得式3)。(x1-x0)(x-(x1+x0)/2)+(y1-y0)(y-(y1+y0)/2)+

2014-10-26 00:08:56 1418

原创 MultiplyPoint 同MultiplyVector 的区别

在unity3d中Matrix4X4提供了两个矩阵转换的方法,分别是MultiplyPoint 同MultiplyVector ,为了测试其不同在场景中放置了三个球,一个红球,一个蓝球,蓝球为红球子物体测试代码如下:结果:通过结果可以看出MultiplyPoint将向量的位置转换为世界坐标中的位置,而MultiplyVector没有改变位置,但是方向其实是修改了的,为了验证这一点,

2014-10-15 16:48:08 6347 5

原创 Time类里面time、deltaTime、fixedTime、fixedDeltatime的区别(Unity3d)

time是从程序开始执行到现在的时间,deltaTime上一帧完成的时间,fixedTime表示FixedUpdate已经执行的时间,而fixedDeltatime是一个固定的时间增量。在update()中time、deltaTime获取的是一个正确的值,fixedTime的值并不会增加,如果是在FixedUpdate中,则fixedTime值会更新并且和time的值一样,deltaTim

2014-10-09 18:56:26 33689 1

原创 雨血1-2体会

利用周末这两天的时间把雨血1、2玩完,原准备写一个细致的游戏的体会,从游戏的基本信息到画风和音乐等等,但是我觉得很没必要,因为不是专业的游戏评测,我只需要写下自己的体会就行了。         雨血最重要的还是剧情,在我的眼中这款游戏的风格定位就是古龙风的武侠单机RPG,画风以及音乐都是在这个基础上进行建设的,中国风的场景及人物的设计(当然有的地方的女角色居然穿着高跟鞋好像有点违和感)和武侠感

2014-09-07 18:30:39 659

原创 Unity如何使用WindowsForm

在vs中建立一个类库的项目,添加一个windows窗体,这是时候要注意更换掉引用的dll,如System.Windows.Forms.dll,需要的dll来自于Editor\Data\Mono\lib\mono\2.0,并且需要将其添加到unity资源中。                             Unity Edit>Project Setting>Player 修改为

2013-11-16 21:55:51 2160

原创 Unity3d 协同程序学习和测试

阅读资料:http://docs.unity3d.com/Documentation/Manual/Coroutines.html         http://blog.csdn.net/a112634313/article/details/7915168         http://blog.csdn.net/hany3000/article/details/10382221可以

2013-11-12 16:52:55 859

空空如也

空空如也

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

TA关注的人

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