
系统性能篇
用于系统优化方向
C_IS_ALL
嵌入式、视频、软件开发、硬件开发
展开
-
00-系统篇-概述
前面基础篇所描述的内容只是在工程中遇到的一些基本知识和基本概念,真正在项目工程实践中,会遇到很多形形色色的工程问题,特别是代码量过大,或者集成其它第三方的开发库过多时,出现异常问题怎样定位与解决,这些都需要更加深入的看整体系统来加以解决。系统篇,顾名思义,就是教读者从整体工程系统的角度看代码,而不仅仅局限于一个demo或一个小应用。系统篇集节了笔者的一些心得与体会,后面分以下角度加以编写。原创 2023-08-31 10:29:46 · 94 阅读 · 0 评论 -
03-系统篇-内存碎片
2.allocator:由上图可以知道allocator对应apr_allocator_t管理器,其中free是一个数组链表,free的下标的索引就是对应的index,apr_allocator_t管理器是管理空闲内存的,也就是暂时没有使用的内存,根据index可以将空闲的内存放在对应free[index]的所在链表中,从而实现了空闲内存的管理。操作系统的堆内存是连续的,而我们释放内存时,只能对堆末尾的内存进行释放,由于先分配的内存并不一定会先释放,因而,通过sbrk()下移来释放内存在实际中存在问题。原创 2023-09-10 19:37:20 · 343 阅读 · 0 评论 -
02-系统篇-进程的内存布局与虚拟内存概念
对应的物理地址为对应的地址序号+偏移量,逻辑地址和物理地址的偏移量是一样的,因而页表所包含的映射关系仅仅是逻辑地址所在页面和物理地址所对应序号的关系。一般一个进程运行时,并非此进程中所有的作业都要放入内存,可以将程序的一部分装入内存,而其余部分保留在外存,将所要执行的部分不在内存时,将要执行的部分从外存导入内存,而将长期不执行的部分从内存导出至外存并腾出内存空间。linux中是多个进程一起运行,每一个进程均要使用内存,如何保证这些进程可以不互相干扰的使用内存,操作系统提出了相关的解决方案,既虚拟内存。原创 2023-09-05 11:16:41 · 160 阅读 · 0 评论