前几天有人问我之前写的那个跳舞链解数独的程序的内存泄漏问题如何解决,因此回顾了一下我的那个程序。现在看来那个程序简直不忍直视,于是大刀阔斧的改了。主要是把动态内存分配都改为了静态预分配,这样就可以避免频繁的调用malloc和free。同时静态分配的好处就是内存访问局部性比较好,cache不容易mis...
分类:
其他好文 时间:
2014-08-24 14:05:12
阅读次数:
300
/*
无锁内存缓冲池
其特点如下:
池内存的申请和释放不会使用锁,只会用到微耗的interlockedincrement和interlockeddecrement函数
池内存总大小和池内内存块的大小是固定长度的,通过构造函数的参数指定;
分配出来的池内存是经过memset确认的物理内存;
池大小是固定的,若池中空闲内存不足以提供所需,则池内存分配函数利用malloc...
分类:
其他好文 时间:
2014-08-23 16:52:03
阅读次数:
344
垃圾收集算法
一般来说,垃圾收集算法分为四类:最基础的算法便是标记-清除算法(Mark-Sweep)。算法分为“标记”和“清除”两个阶段:首先标记处需要收集的对象,在标记完成之后,再统一回收所有被标记的对象。
这是最简单的一种算法,但是缺点也是很明显的:一个是效率问题,标记和清除效率都不高。二是空间问题,清除之后会产生大量的空间碎片,导致之后分配大对象找不到足够的连续对象而不得不触发另一次垃圾收集动作。算法执行过程如下图。...
分类:
编程语言 时间:
2014-08-22 16:26:59
阅读次数:
211
这是篇关于java线程的文章,写的非常通俗易懂的,适合任何读计算机的同学学习.
线程同步
我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程(Thread)。
线程(Thread)是一份独立运行的程序,有自己专用的运行栈。线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。
当多个线程同时读写同一份共享资源的时候,可能会引起冲突...
分类:
编程语言 时间:
2014-08-22 16:21:29
阅读次数:
307
先贴代码,总结以后再写,和5中内存分配方式密切相关PS:str 返回整个字符串,str[0],*str返回首字符hchar *strA(){ char str[]="hello!"; //局部数组,局部变量, str存在栈区 return str; //局部变量不...
分类:
编程语言 时间:
2014-08-22 00:15:05
阅读次数:
263
一:在内存引用上做些处理,常用的有软引用、强化引用、弱引用 二:在内存中加载图片时直接在内存中做处理,如:边界压缩 三:动态回收内存 四:优化Dalvik虚拟机的堆内存分配 五:自定义堆内存大小可是真的有这么简单吗,就用以上方式就能解决OOM了?不是的,继续来看... 下面小马就照着上面的次序来整....
分类:
移动开发 时间:
2014-08-21 13:13:34
阅读次数:
353
答: init中调用super的init方法来初始化自己所包含有的父类信息1.内存分配 内存应该在[Class alloc]的时候就已经分配了,大小和类型应该由对应的Class来决定。而init方法只是进行对象内部各种变量的初始化,同时将retain count加一,表示目前这块内存空间有人在...
分类:
其他好文 时间:
2014-08-21 11:21:44
阅读次数:
167
三、资源管理 资源就是一旦你使用了它,将来不用的时候必须归还系统。C++中最常用的资源就是动态内存分配。其实,资源还有 文件描述符、互斥器、图形界面中的字形、画刷、数据库连接、socket等。 1、 以对象管理资源 void f() { investment *plv = createInvestm...
分类:
编程语言 时间:
2014-08-20 13:47:52
阅读次数:
187
C语言中常用的内存分配函数有malloc、calloc和realloc等三个,其中,最常用的肯定是malloc,这里简单说一下这三者的区别和联系。
1、声明
这三个函数都在stdlib.h库文件中,声明如下:
void* realloc(void* ptr, unsigned newsize);
void* malloc(unsigned size);
void* c...
分类:
数据库 时间:
2014-08-20 10:34:06
阅读次数:
234
几次面试中遇到都有类似的问题,就是string str = "aa" + "bb" + "ccc";进行了几次内存分配?1 class Program2 {3 static void Main(string[] args)4 {5 st...
分类:
Web程序 时间:
2014-08-19 20:34:45
阅读次数:
196