一些奇怪的现象现象1:以旺旺为例,打开旺旺主窗口的时候,内存占用大勇50多M,点击右上角的关闭按钮隐藏旺旺到系统托盘图标以后,旺旺占用的内存迅速降低到20多M。解释:将程序隐藏到系统托盘后,尽管程序本身可能并没有释放内存的操作,但系统会进行资源优化释放一些不必要的资源。这部分优化过程是系统主动进行的...
分类:
其他好文 时间:
2014-12-31 17:42:14
阅读次数:
127
由于 Ubuntu 是基于 Debian 的 linux 操作系统,在默认的情况下,是没有超级用户(superuser, root)的,但有些系统操作必须有超级用户的权限才能进行,如手动释放内存等。 在其他 linux 操作系统(如 fedora)下,可以使用 su 切换到超级用户。 当输入 s.....
分类:
系统相关 时间:
2014-12-30 18:38:20
阅读次数:
268
为了防止内存泄露,养成检测内存分配/释放是否成功的良好习惯:
1,动态分配内存的时候检测是否分配成功,如果不成功请返回友好提示~
2,释放内存的时候将释放后的内存指针指向NULL,以保证不能被访问~
因为释放内存后,系统只是回收了指针所指的内存,此时指针是一个野指针本身仍是合法的,(只有有些类似void*的指针了),访问野指针程序当然出现异常~!
例子1:malloc()和free...
分类:
其他好文 时间:
2014-12-26 11:09:29
阅读次数:
143
1、什么叫分配内存操作系统把某一块内存空间的使用权利分配给该程序2、释放内存操作系统把分配给该程序的内存空间的使用权利收回,该程序就不能再使用这块内存空间注:释放内存空间并不是把这块内存的数据清空3、变量为什么必须初始化不初始化,则变量的初始值通常是垃圾值注:全局变量 静态变量初始值为0局部变量,....
分类:
编程语言 时间:
2014-12-25 00:03:04
阅读次数:
225
Android系统是基于liunx内核的,但是与传统的基于liunx的pc系统不同,用户对Android app没有绝对的掌控权。pc系统中,在应用程序的系统菜单上选择“退出”或者“关闭”之类的选项会直接杀死进程。在Android系统中不是这样的。而是由系统,当系统需要释放内存来运行新进程或者保证某些后台进程和前端进程顺利执行的时候才会释放相应应用程序的资源,这个释放过程有一个重要性的层次,接下来就听乐居猫做一下说明:...
分类:
移动开发 时间:
2014-12-24 20:12:39
阅读次数:
189
JS是自动释放内存的,采用的是无用存储单元收集(garbage collection)的方法,js解释器可以检测到什么时候程序不再使用一个变量了,当他确定了一个对象时无用的时候,他就知道不再需要这个对象,可以把它所占用的...
分类:
Web程序 时间:
2014-12-24 10:10:22
阅读次数:
233
一、为什么需要GC应用程序对资源操作,通常简单分为以下几个步骤:1、为对应的资源分配内存2、初始化内存3、使用资源4、清理资源5、释放内存应用程序对资源(内存使用)管理的方式,常见的一般有如下几种:1、手动管理:C,C++2、计数管理:COM3、自动管理:.NET,Java,PHP,GO…但是,手动...
分类:
其他好文 时间:
2014-12-22 22:29:08
阅读次数:
318
运行时 触发了virsual studio的assert断点。输出内容如下:HEAP[xx.exe]: Invalid Address specified to RtlValidateHeap( 00C80000, 00CACFFC )Windows 已在 xx.exe 中触发一个断点。其原因可能是...
分类:
其他好文 时间:
2014-12-20 18:12:35
阅读次数:
218
了解过之前老版本OpenCV的童鞋们都应该清楚,对于OpenCV1.0时代的基于 C 语言接口而建的图像存储格式IplImage*,如果在退出前忘记release掉的话,就会造成内存泄露。而且用起来超级麻烦,我们往往在debug的时候,很大一部分时间在纠结手动释放内存的问题。虽然对于小型的程序来说手...
分类:
其他好文 时间:
2014-12-19 23:17:53
阅读次数:
277
工作之余,在看老外写的代码,发现一个很有意思的东西,我们平时常说goto语句是有害的,主要是它跳来跳去,打乱逻辑。但goto也有好处,比如单出口,统一释放内存方面,下面看下一个关于MAPI初始化的一个函数int MapiInit(){ int Result ...
分类:
编程语言 时间:
2014-12-19 14:24:56
阅读次数:
191