首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 图书频道 > 计算机与网络 > 操作系统 >

嵌入式Linux内存使用与性能优化

2010-04-20 
基本信息·出版社:机械工业出版社 ·页码:316 页 ·出版日期:2009年05月 ·ISBN:7111270436/9787111270430 ·条形码:9787111270430 ·版本:第1版 · ...
商家名称 信用等级 购买信息 订购本书
嵌入式Linux内存使用与性能优化 去商家看看
嵌入式Linux内存使用与性能优化 去商家看看

 嵌入式Linux内存使用与性能优化


基本信息·出版社:机械工业出版社
·页码:316 页
·出版日期:2009年05月
·ISBN:7111270436/9787111270430
·条形码:9787111270430
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:信息科学技术丛书移动与嵌入式开发系列
·图书品牌:华章图书

内容简介 《嵌入式Linux内存使用与性能优化》主要讲述嵌入式系统开发中的两个难点:系统的内存使用与系统性能优化。关于系统的内存使用,《嵌入式Linux内存使用与性能优化》试图完成两项任务:增加系统整体的空闲内存数量,从而提高进程的并发能力:使系统在长时间运行后,仍然能够保持较高数量的空闲内存。《嵌入式Linux内存使用与性能优化》所讲述的内存使用,不是Linux内核的内存管理,而是在用户层观察进程是如何使用内存的。
关于系统性能优化,《嵌入式Linux内存使用与性能优化》不同于同类书侧重于编程语法或者发挥硬件性能的做法,而是着眼于大型软件项目性能优化实践,阐明了逻辑优化与代码优化之间的辩证关系,提出了软件优化层次的概念。针对代码优化,阐述了代码优化的境界,为代码优化指明了研究方向。
编辑推荐 《嵌入式Linux内存使用与性能优化》特点为:让程序占用内存更少
让系统启动速度更快
逻辑优化与代码优化的辩证关系
系统性能优化
目录
出版说明
前言
第一篇 内存使用
第1章 内存的测量
1.1 系统当前可用内存
1.2 进程的内存使用
1.2.1 虚拟内存与物理内存
1.2.2 /proc/{pid}
1.2.3 内存回收

第2章 进程内存优化
2.1 执行文件
2.1.1 堆段
2.1.2 栈
2.1.3 环境变量及参数
2.1.4 ELF文件
2.1.5 数据段
2.1.6 代码段
2.1.7 使用Thumb指令
2.2 动态库
2.2.1 数据段
2.2.2 代码段
2.2.3 动态库的优化
2.3 静态库
2.4 线程
2.4.1 设置进程栈空间
2.4.2 设置线程栈空问
2.4.3 减少线程的数量
2.5 共享内存

第3章 系统内存优化
3.1 守护进程的内存使用
3.2 tmpfs分区
3.3 Cache和Buffer
3.4.内存回收
3.5 /proc/sys/vm/优化

第4章 内存泄漏
4.1 是否有内存泄漏
4.2 mtrace
4.3 malloc与free钩子函数
4.4 栈的回溯
4.5 化整为零法
4.6 Dmalloc
4.7 Valgrind

第二篇 软件性能优化
第5章 性能优化的流程
5.1 性能评价
5.2 性能优化的流程
5.3 性能的评测
5.4 性能分析

第6章 进程启动速度
6.1 查看进程的启动过程
6.2 减少加载动态库的数量
6.3 共享库的搜索路径
6.4 动态库的高度
6.5 动态库的初始化
6.6 动态链接
6.7 提高进程启动速度
6.8 进程冷起与热起的区别

第7章 性能优化的方法
7.1 寻找程序热点
7.1.1 gprof
7.1.2 OProfile
7.2 程序逻辑瓶颈
7.3 优化的层次
7.4 何时开始性能优化
7.5 如何推动系统性能优化
7.6 为什么软件性能会低下
7.7 程序逻辑优化
7.7.1 算法的优化
7.7.2 考虑事件的特殊性

第8章 代码优化的境界
8.1 GCC编译优化
8.1.1 条件编译
8.1.2 指定CPU的型号
8.1.3 builtin函数
8.1.4 GCC编译优化
8.1.5 GCC与G++的不同
8.2 优化基本原则
8.3 标准C代码优化
8.3.1 数据类型
8.3.2 常量定义
8.3.3 数组
8.3.4 结构
8.3.5 变量
8.3.6 慢操作
8.3.7 if语句
8.3.8 switch语句
8.3.9 循环
8.3.1 0函数
8.3.1 1寄存器的使用
8.3.1 2文件操作
8.3.1 3线程
8.4 C++代码优化
8.4.1 构造函数和析构函数
8.4.2 对象的作用域
8.4.3 访问成员变量
8.4.4 成员函数
8.4.5 全局对象与静态对象
8.4.6 栈对象与堆对象
8.5 硬件相关的优化
8.5.1 流水线
8.5.2 内存访问
8.5.3 Cache
8.5.4 Thumb指令
8.5.5 多媒体指令SIMD

第9章 系统性能优化
9.1 Shell脚本优化
9.1.1 Builtins和applets
9.1.2 bash脚本
9.1.3 如何优化BusyBoxbash脚本
9.2 使用Preload预先加载进程
9.3 调整进程的优先级
9.4 让进程运行得慢一些
9.5 守护进程的数量
9.6 文件系统
9.7 使用Lmbennch了解你的系统
9.8 系统的启动
9.9 系统耗电量
附录GCC常用编译选项
参考文献
……
序言 随着信息科学与技术的迅速发展,人类每时每刻都会面对层出不穷的新技术和新概念。毫无疑问,在节奏越来越快的工作和生活中,人们需要通过阅读和学习大量信息丰富、具备实践指导意义的图书来获取新知识和新技能,从而不断提高自身素质,紧跟信息化时代发展的步伐。
众所周知,在计算机硬件方面,高性价比的解决方案和新型技术的应用一直备受青睐;在软件技术方面,随着计算机软件的规模和复杂性与日俱增,软件技术不断地受到挑战,人们一直在为寻求更先进的软件技术而奋斗不止。目前,计算机在社会生活中口益普及,随着Intemet延伸到人类世界的方方面面.掌握计算机网络技术和理论已成为大众的文化需求。由于信息科学与技术在电工、电子、通信、工业控制、智能建筑、工业产品设计与制造等专业领域中已经得到充分、广泛的应用。所以这些专业领域中的研究人员和工程技术人员越米越迫切需要汲取自身领域信息化所带来的新理念和新方法。
针对人们了解和掌握新知识、新技能的热切期待,以及由此促成的人们对语言简洁、内容充实、融合实践经验的图书迫切需要的现状,机械工业出版社适时推出了“信息科学与技术丛书”。这套丛书涉及计算机软件、硬件、网络和工程应用等内容,注重理论与实践的结合,内容实用、层次分明、语言流畅。是信息科学与技术领域专业人员不可或缺的参考书。
文摘 插图:


第2章进程内存优化
有了dirtypage这个指标,笔者很快就拿出了一份在设备中各个进程的dirtypage使用情况的报告,老板看了之后也很满意。很快,老板又召集了一个会议,把所有组长都叫了过来,讨论这份报告。
现在对每个进程使用了多少内存很清楚了,接下来要朝第一个目标前进:减少各个守护进程所占用的内存,使系统空闲内存达到一个较高的水平。问题是谁对系统内存减少负责?
让某一个守护进程来负责,不太可能,毕竟系统的内存使用所有的守护进程都有份。那么每个进程要减多少呢?老板很清楚,为了避免各个团队之间互相推诿,需要一个硬指标,每个团队也需要一个硬指标。可这个指标实在是难以确定,每个进程的内存使用根本就是一本糊涂账,开发团队不清楚,老板就更不清楚了,每个进程内存使用到底能够减多少,谁都不清楚。可从前一段各个团队优化内存的情况来看,进展缓慢,如果没有一个指标,没有压力的话,这个事情就很难推动。
最后敲定两条标准:
(1)所有守护进程所占内存只能比发布的上一个版本所占的内存少。
(2)DirtyPage排在前10名的守护进程,要努力去优化,dirtypage总量要减少20%。
这个结果,可以说几家欢乐几家愁啊,虽然有可能误杀,但是命中率还是很高的。
下一步,就要开始真正的内存优化之旅了,程序员朋友有些等不及了吧。要想减少进程的内存使用,就要首先清楚有哪些因素对内存使用产生影响。为此,笔者将分为3个部分对其进行说明。
热点排行