内存泄漏(memory leak)和内存溢出(out of memory)

来源:互联网 发布:root软件哪个成功率高 编辑:程序博客网 时间:2024/05/17 21:58

一、概念:

memory leak---内存泄漏:是指程序申请内存空间后,无法释放。然而,内存泄漏不断叠加会导致系统把内存花完,以致于发生内存溢出。(用了不还)

out of memory---内存溢出:是指程序申请的内存空间>系统能提供的内存空间。如:你申请了integer来装long才能装下的数,发生内存溢出。(用了不够用)

二、内存泄漏

包括4种:

1. 常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。 

2. 偶发性内存泄漏。发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。

3. 一次性内存泄漏。发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块仅且一块内存发生泄漏。如:在构造函数new,而没有在析构函数delete。

4. 隐式内存泄漏。程序在运行过程中不停的分配内存,但是直到结束的时候才释放内存。(危害性则非常大,因为更难被检测到


0 0
原创粉丝点击