首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>系统管理>系统管理>正文

内存管理内幕 动态分配的选择、折衷和实现

http://www.oklinux.cn  2007-08-03  赛迪网 kit  会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

本文将对 Linux™ 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半手工地管理内存,以及如何使用垃圾收集自动管理内存。

 

为什么必须管理内存

 

内存管理是计算机编程最为基本的领域之一。在很多脚本语言中,您不必担心内存是如何管理的,这并不能使得内存管理的重要性有一点点降低。对实际编程来说,理解您的内存管理器的能力与局限性至关重要。在大部分系统语言中,比如 C 和 C++,您必须进行内存管理。本文将介绍手工的、半手工的以及自动的内存管理实践的基本概念。

 

追溯到在 Apple II 上进行汇编语言编程的时代,那时内存管理还不是个大问题。您实际上在运行整个系统。系统有多少内存,您就有多少内存。您甚至不必费心思去弄明白它有多少内存,因为每一台机器的内存数量都相同。所以,如果内存需要非常固定,那么您只需要选择一个内存范围并使用它即可。

 

不过,即使是在这样一个简单的计算机中,您也会有问题,尤其是当您不知道程序的每个部分将需要多少内存时。如果您的空间有限,而内存需求是变化的,那么您需要一些方法来满足这些需求:

确定您是否有足够的内存来处理数据。

 

从可用的内存中获取一部分内存。

 

向可用内存池(pool)中返回部分内存,以使其可以由程序的其他部分或者其他程序使用。

实现这些需求的程序库称为 分配程序(allocators),因为它们负责分配和回收内存。程序的动态性越强,内存管理就越重要,您的内存分配程序的选择也就更重要。让我们来了解可用于内存管理的不同方法,它们的好处与不足,以及它们最适用的情形。

共3页: 上一页 1 [2] [3] 下一页

上一篇:通过Linux系统的内核观察/proc/pid/statm   下一篇:Linux中的内存简单计算方式介绍

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·让linux系统内存不再泄漏的好方法
·Linux启动时间的极限优化方案
·Linux内存磁盘初始化技术详细解析
·Ubuntu Linux系统上的三款超强监视工具
·让Ubuntu Linux支持第三方无线网卡的方法
·Ubuntu Linux系统常见问题解决方法集锦
·Linux下各种主要文件系统的读写性能测试
·Debian系统下Latex+Dvipdfm中文解决方案
·Linux下动态库的生成及链接方法
·Linux下加载ISO文件的方法介绍
·在Linux下FrameBuffer直接写屏
·Linux用户口令安全恢复方法介绍
·Linux环境下的高级隐藏技术详解
·Linux操作系统文件权限设置方法详细讲解
·快速安全的建立Linux操作系统的用户账户
·Linux服务器前台常出现的错误提示及含意
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·VirtualBox为Ubuntu系统配置共享文件夹
·Ubuntu下安装Netgear WG511v2 无线网卡
·Redhat Enterprise Linux磁带机简单操
·Linux系统下创建DBCA报错的解决方法
·Fedora和XP双系统中网卡Realtek冲突问
·Ubuntu开机自动挂载Win分区
·ubuntu8.04如何访问其它分区
·Fedora 9的安全措施
· 移动Linux系统中的TMP分区
·双Linux和多Linux系统的安装方法介绍
·轻松设置Wine程序的中文显示
·Linux系统下强大的杀毒软件:Avast
  阅读排行
·在Linux系统下查看端口的使用情况及启
·在Linux操作系统下查看磁盘空间的好方
·使用源代码将 Glibc 升级到 2.6
·Useradd和Adduser添加用户工具使用方法
·Linux系统的头文件和库文件搜索路径
·Linux下推荐的常用应用程序列表
·Linux环境进程间通信——信号(上)
·设置GRUB默认启动系统及Menu.lst参数介
·Linux系统挂载U盘和硬盘光驱的问题
·Df命令:查看Linux磁盘剩余空间方法介
·什么是Linux?Linux与UNIX之间的关系
·Linux系统利用Crontab命令实现定时重启
·使用 ActiveScaffold 增强 Ruby on Rai
·Linux系统下常用命令及账户管理
·新手入门:手把手教你如何写Makefile
网摘收藏: