前几天面试多益网络的时候,面试官就问到了C/C++中的内存泄露问题。这也是很多公司面试时候的高频题,好吧,那就来学习下吧~
到底什么是内存泄漏?是什么导致了内存泄漏?如何避免?又如何检测呢?
1)什么是内存泄漏?
简单来讲,内存泄露是指程序中一块不再使用的内存没有被释放,造成内存保持占用状态,使操作系统不能将内存分配给其它的程序(进程)。内存泄露不是一个立即会引发故障的错误,但是它将...
分类:
编程语言 时间:
2015-05-07 08:57:53
阅读次数:
221
本篇态度: simple & stupidweak reference
Weak reference objects, which do not prevent their referents from being made finalizable, finalized, and then reclaimed. Weak references are most often used to imp...
分类:
编程语言 时间:
2015-05-06 09:19:03
阅读次数:
188
Android手机给应用分配的内存通常是8兆左右,如果处理内存处理不当很容易造成OutOfMemoryErrorOutOfMemoryError主要由以下几种情况造成:数据库Cursor没关。当我们操作完数据库后,一定要调用close()释放资源。构造Adapter没有使用缓存convertView...
分类:
其他好文 时间:
2015-05-05 19:28:05
阅读次数:
103
今天在手机上测试一个程序的时候无意间发现了一个kernel进程kmemleak,于是就认识了memleak。内存泄露是一个很严重的问题,特别是移动平台上面的开发,如果内存泄露不严重那么查起来的难度将会加大,有了这个小tool对我们的开发或多或少有些帮助。
关于MemLeak官方她自己已经描述得很清楚了,MemLeak -- a module to debug memory lea...
分类:
其他好文 时间:
2015-05-05 08:59:39
阅读次数:
1377
应当注意以下几点:1.是否将返回值类型声明为该类型的引用,否则无法做连续赋值2.是否将传入的参数声明为常量引用,如果不是常量,不能保证不会修改传入的参数,如果不是引用,会调用一次拷贝构造函数影响代码的效率。3.是否判断赋值的两个操作数是同一个实例。4.是否删除被赋值对象的内存,否则会产生内存泄露。程...
分类:
其他好文 时间:
2015-04-30 19:54:20
阅读次数:
121
在关闭C++的程序后,在VS编译器的 Output窗口后
出现如下情况:f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {930} normal block at 0x0075E3F8, 22 bytes long.
Data: 84 CF DF 77 02 00 00 00 02 00 00 00 01 00 00 ...
分类:
编程语言 时间:
2015-04-30 10:35:23
阅读次数:
180
Android上 ,Context可以用于很多操作,但是大部分时候是用来加载以及使用资源。这就是为什么所有的widgets在他们的构造函数中接受一个Context参数。在一般的android应用中,你通常有两种Context:分别是Activity和Application。通常的,当我们的类和方法需要使用到context时,我们传递的是Activity这个context。
[j...
分类:
其他好文 时间:
2015-04-29 11:42:26
阅读次数:
112
1、资源对象没有关闭造成内存泄露
资源性对象比如(Cursor,File文件等)往往都用了一些缓冲,我们在不使用的时候,应该及时关闭它们,以便它们的缓冲及时回收内存。它们的缓冲不仅存在于java虚拟机内,还存在于java虚拟机外。如果我们仅仅是把它的引用设置为null,而不关闭它们,往往会造成内存泄漏。因为有些资源性对象,比如SQLiteCursor(在析构函数finalize(),如果我...
分类:
移动开发 时间:
2015-04-29 11:37:28
阅读次数:
164
1:通过jps命令查看所有进程pid。
2:使用top -p pid 针对你所要查的pid查看这个进程的CPU和内存以及负载情况
如图:
使用top -p pid -H 查看针对每一个线程占用CPU情况进行查询
如果你发现某一个PID占用的CPU过高,就拿到这个PID转换成16进制
例如pid为12760转化成16进制31D8,大写换成小写
jstack 22...
分类:
编程语言 时间:
2015-04-28 12:00:19
阅读次数:
162
Java内存泄露监控工具:JVM监控工具介绍 http://developer.51cto.com/art/201203/321431.htm关于施用full gc频繁的分析及解决 http://www.07net01.com/zhishi/383213.html详解Java GC的工作原理+Min...
分类:
其他好文 时间:
2015-04-27 23:18:49
阅读次数:
148