Linux 系统性能优化.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux系统性能优化 吴士力 e-mail: wsl.wushili@ Linux 系统内存 系统内存使用情况 通过free命令 buffers: 块设备的数据缓冲区 cached:缓冲被打开的文件(内存空间充足时使用,如不足就回收) 系统可用的内存为:free+buffers+cached 进程的内存空间 Linux进程虚拟内存空间分布 进程的内存空间分配 Linux进程内存空间分配 int main() { char *p1=(char *)malloc(10); (1) strcpy(p1, ‘123’); (2) char *p2=(char *)malloc(200); (3) return 0; } (1) 分配10个字节的虚拟空间,并没有分配物理空间 (2) 因为进程需要访问p1指向的空间,Linux会分配相应的物理空间 (3) 分配200个字节的虚拟空间,并没有分配物理空间 (1)(2)(3)代码占用了210个字节的虚拟空间,4KB的物理空间(思考) 进程的内存空间分配 Linux进程内存空间分配 hello.c 进程的内存空间分配 Linux进程内存空间分配 cd /proc  cd 进程号  cat statm(7个数,以4KB为单位) 进程的内存空间分配 Linux进程虚拟内存空间分配 cat /maps 进程的内存空间分配 Linux进程的物理内存空间 cat /memmap memmap中每一行对应于maps中的每一行,每两个字符对应物理内存的 一个页面(4K)第一个字符是物理内存页数,第二个字符是进程引用数 进程的内存优化 Linux进程内存优化策略 1. 栈空间优化 避免在栈空间中申请大块内存(栈空间只能增加,不能减少) 避免使用递归函数 2. 堆空间优化 尽量减少申请小块内存(堆空间的最小分配单位为16个字节) 3. 数据段空间优化 bss: 存储未初始化的全局变量和静态变量 data:存储初始化的全局变量和静态变量 进程本身的数据段空间优化作用不大,主要是共享库的数据段空间优化 尽量减少全局变量、静态变量的使用 4. 代码段优化 意义不大,在满足逻辑正确性、可读性、可修改性的前提下,优化代 码段结构,减少体积。 应用程序编写优化 优化目标 对时间和空间的矛盾处理 常用优化方法 利用左/ 右移位操作代替乘/ 除2 运算 使用inline 函数(以空间为代价提高调用函数的时间效率 ) 合理安排变量顺序 (字对齐) 使用寄存器变量 用查表代替计算(把频繁计算的结果存放在内存中,如数学计算 ) GCC优化(-O0不进行编译优化,-O1进行代码优化,-O2在-O1基础上增加优化措施 ,-O3在-O2基础上增加优化措施。在调试阶段,为了提高编译效率,一般不进行编译优化) 优化小结 优化的过程是在透彻了解软/ 硬件结构和特性的前提下,充分利用硬件资源,不断调整程序结构使之趋于合理的过程。 优化的目的是最大程度发挥处理器效能,最大限度利用资源,尽可能提高程序在特定硬件平台上的性能。

文档评论(0)

tianebandeyazi + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档