《嵌入式Linux内存使用与性能优化》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:史子旺,叶超群,蔡建宇编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2009
  • ISBN:9787111270430
  • 页数:317 页
图书介绍:本书主要介绍了有关讲述嵌入式系统开发中的两个难点,系统的内存使用与系统性能等。

出版说明 3

前言 3

第一篇 内存使用 3

第1章 内存的测量 3

1.1 系统当前可用内存 3

1.2 进程的内存使用 5

1.2.1 虚拟内存与物理内存 5

1.2.2 /proc/{pid} 6

1.2.3 内存回收 11

第2章 进程内存优化 13

2.1 执行文件 13

2.1.1 堆段 15

2.1.2 栈 26

2.1.3 环境变量及参数 29

2.1.4 ELF文件 34

2.1.5 数据段 48

2.1.6 代码段 61

2.1.7 使用Thumb指令 65

2.2 动态库 69

2.2.1 数据段 70

2.2.2 代码段 76

2.2.3 动态库的优化 82

2.3 静态库 86

2.4 线程 87

2.4.1 设置进程栈空间 90

2.4.2 设置线程栈空间 91

2.4.3 减少线程的数量 91

2.5 共享内存 92

第3章 系统内存优化 94

3.1 守护进程的内存使用 94

3.2 tmpfs分区 95

3.3 Cache和Buffer 95

3.4 内存回收 96

3.5 /proc/sys/vm/优化 97

第4章 内存泄漏 99

4.1 是否有内存泄漏 99

4.2 mtrace&lo 100

4.3 malloc与ee钩子函数 101

4.4 栈的回溯 121

4.5 化整为零法 124

4.6 Dmalloc 125

4.7 Valgrind 127

第二篇 软件性能优化 133

第5章 性能优化的流程 133

5.1 性能评价 133

5.2 性能优化的流程 133

5.3 性能的评测 134

5.4 性能分析 134

第6章 进程启动速度 140

6.1 查看进程的启动过程 140

6.2 减少加载动态库的数量 143

6.3 共享库的搜索路径 144

6.4 动态库的高度 147

6.5 动态库的初始化 147

6.6 动态链接 151

6.7 提高进程启动速度 156

6.8 进程冷起与热起的区别 159

第7章 性能优化的方法 160

7.1 寻找程序热点 161

7.1.1 gprof 161

7.1.2 OProfile 165

7.2 程序逻辑瓶颈 188

7.3 优化的层次 190

7.4 何时开始性能优化 191

7.5 如何推动系统性能优化 192

7.6 为什么软件性能会低下 193

7.7 程序逻辑优化 195

7.7.1 算法的优化 196

7.7.2 考虑事件的特殊性 199

第8章 代码优化的境界 201

8.1 GCC编译优化 202

8.1.1 条件编译 202

8.1.2 指定CPU的型号 204

8.1.3 builtin函数 204

8.1.4 GCC编译优化 205

8.1.5 GCC与G++的不同 206

8.2 优化基本原则 209

8.3 标准C代码优化 209

8.3.1 数据类型 209

8.3.2 常量定义 213

8.3.3 数组 214

8.3.4 结构 217

8.3.5 变量 218

8.3.6 慢操作 224

8.3.7 if语句 231

8.3.8 switch语句 235

8.3.9 循环 239

8.3.10 函数 246

8.3.11 寄存器的使用 248

8.3.12 文件操作 254

8.3.13 线程 258

8.4 C++代码优化 258

8.4.1 构造函数和析构函数 258

8.4.2 对象的作用域 263

8.4.3 访问成员变量 265

8.4.4 成员函数 271

8.4.5 全局对象与静态对象 273

8.4.6 栈对象与堆对象 275

8.5 硬件相关的优化 276

8.5.1 流水线 278

8.5.2 内存访问 281

8.5.3 Cache 285

8.5.4 Thumb指令 292

8.5.5 多媒体指令SIMD 294

第9章 系统性能优化 301

9.1 Shell脚本优化 301

9.1.1 Built-ins和applets 301

9.1.2 bash脚本 302

9.1.3 如何优化BusyBox bash脚本 302

9.2 使用Preload预先加载进程 303

9.3 调整进程的优先级 304

9.4 让进程运行得慢一些 306

9.5 守护进程的数量 307

9.6 文件系统 308

9.7 使用Lmbench了解你的系统 310

9.8 系统的启动 311

9.9 系统耗电量 312

附录 GCC常用编译选项 314

参考文献 317