OpenHarmony加载器内存管理策略主要涉及内存优化方案,以提升用户体验。以下是对OpenHarmony内存管理策略的详细解析:
传统内存方案及管理机制
- SWAP:内存交换技术或虚拟内存技术,通过将不常用的内存空间释放到SWAP分区来增大系统可用内存。然而,SWAP在内存换入/换出时会遭遇IO性能瓶颈,并可能缩减flash存储器件的寿命。
- ZRAM:内存压缩技术,将系统物理内存的一部分划分出来作为ZRAM分区,压缩不常用的匿名页以增大可用内存。但若无合适的管理方式,会导致内存页频繁压缩/解压缩,增加系统功耗并影响用户体验。
- 传统内存管理机制:无法感知业务特性及数据的重要性,可能导致内存数据回收时的频繁数据搬移和内存震荡,增加内核管理内存的开销并导致系统CPU负载长期处于高负载状态。
OpenHarmony内存解决方案——ESWAP
- ESWAP方案介绍:ESWAP(Enhanced SWAP)是OpenHarmony针对内存优化问题提供的一套完善的内存解决方案,结合内存压缩和内存交换技术,定制了一套合理高效的调度管理策略。通过回收优先级来区分不同分组下内存的活跃程度,优先压缩、换出较不活跃的内存数据,以提升数据交换性能,减少寿命冲击。
- 关键技术解析:
- 定制的ZRAM和交换分区:ESWAP提供了自定义新增存储分区作为内存交换分区的能力,并在内核中创建了一个常驻进程ZSWAPD,用于将ZRAM压缩后的匿名页加密换出到ESWAP存储分区中。
- 关联性数据聚合技术:通过关联性的数据聚合技术及上层指导策略,将内存划分为不同的分组进行管理。
- 系统资源调度模块:在全局资源调度子系统中增加了一个系统资源调度模块,通过感知当前的账户状态和内存状态,设置不同的回收优先级、目标可用内存量、压缩和换出的比例等参数。
通过这些优化措施,OpenHarmony能够更有效地管理内存,提升系统性能和用户体验。