zoukankan      html  css  js  c++  java
  • memory leak

    In computer science, a memory leak occurs when a computer program incorrectly manages memory allocations.[1] In object-oriented programming, a memory leak may happen when an object is stored in memory but cannot be accessed by the running code.[2] A memory leak has symptoms similar to a number of other problems (see below) and generally can only be diagnosed by a programmer with access to the program.

    Because they can exhaust available system memory as an application runs, memory leaks are often the cause of or a contributing factor to software aging.

    A memory leak can diminish the performance of the computer by reducing the amount of available memory. Eventually, in the worst case, too much of the available memory may become allocated and all or part of the system or device stops working correctly, the application fails, or the system slows down unacceptably due to thrashing.

    Memory leaks may not be serious or even detectable by normal means. In modern operating systems, normal memory used by an application is released when the application terminates. This means that a memory leak in a program that only runs for a short time may not be noticed and is rarely serious.

    Much more serious leaks include those:

    • where the program runs for an extended time and consumes additional memory over time, such as background tasks on servers, but especially in embedded devices which may be left running for many years
    • where new memory is allocated frequently for one-time tasks, such as when rendering the frames of a computer game or animated video
    • where the program can request memory — such as shared memory — that is not released, even when the program terminates
    • where memory is very limited, such as in an embedded system or portable device
    • where the leak occurs within the operating system or memory manager
    • when a system device driver causes the leak
    • running on an operating system that does not automatically release memory on program termination. Often on such machines if memory is lost, it can only be reclaimed by a reboot, an example of such a system being AmigaOS.[citation needed]
  • 相关阅读:
    基本数据类型相互转换及操作方法
    python以及计算机原理基础简要摘录
    Linux程序包管理
    rpm命令详解
    Linux程序包管理
    Linux任务计划
    压缩,解压缩工具及bash脚本编程
    btrfs文件系统管理与应用
    LVM应用
    CSS核心技术
  • 原文地址:https://www.cnblogs.com/reynold-lei/p/3460717.html
Copyright © 2011-2022 走看看