Name |
Date |
Size |
#Lines |
LOC |
||
---|---|---|---|---|---|---|
.. | - | - | ||||
figures/ | 12-May-2024 | - | ||||
libdmabufheap/ | 12-May-2024 | - | 508 | 343 | ||
LICENSE | D | 12-May-2024 | 9.9 KiB | 178 | 150 | |
OAT.xml | D | 12-May-2024 | 1.1 KiB | 28 | 10 | |
README.md | D | 12-May-2024 | 3.6 KiB | 79 | 53 | |
README_ZH.md | D | 12-May-2024 | 3.1 KiB | 80 | 54 | |
bundle.json | D | 12-May-2024 | 660 | 31 | 31 |
README.md
1 # The Part of Memory Base Libraries 2 3 - [Introduction](#section_introduction) 4 - [Architecture](#section_architecture) 5 - [Directory Structure](#section_catalogue) 6 - [Memory Base Libraries](#section_libraries) 7 - [libdmabufheap system library](#section_libdmabufheap) 8 - [libmeminfo system library (planning)](#section_libmeminfo) 9 - [libmemleak system library (planning)](#section_libmemleak) 10 - [libpurgeable system library (planning)](#section_libpurgeable) 11 - [libspeculative system library (planning)](#section_libspeculative) 12 - [Usage Guidelines](#section_usage) 13 - [Repositories Involved](#section_projects) 14 15 ## Introduction<a name="section_introduction"></a> 16 17 The part of *Memory base libraries* belongs to the subsystem named *Utils Subsystem*. It provides the system library for upper-layer services to operate memory, ensuring the stability of upper-layer services. 18 19 ## Architecture<a name="section_architecture"></a> 20 21 **Figure 1** Memory Base Libraries architecture 22 23  24 25 | Memory Base Libraries | User | 26 | -------------- | -------------------------- | 27 | libdmabufheap | multimedia service | 28 | libmeminfo | memory manager service | 29 | libmemleak | memory manager service | 30 | libpurgeable | graphic service (planning) | 31 | libspeculative | system service (planning) | 32 33 ## Directory Structure<a name="section_catalogue"></a> 34 35 ``` 36 /utils/memory 37 ├── libdmabufheap # DMA (Direct Memory Access) memory allocation system library 38 │ ├── include # DMA memory allocation system library header directory 39 │ ├── src # DMA memory allocation system library source directory 40 │ └── test # DMA memory allocation system library usecase directory 41 ├── libmeminfo # Memory footprint management library 42 ├── libmemleak # Memory leak detection library 43 ├── libpurgeable # Purgeable memory management library 44 └── libspeculative # Speculative memory management library 45 ``` 46 47 ## Memory Base Libraries<a name="section_libraries"></a> 48 49 *Memory base libraries* is a component of the system library that integrates memory operations and manages them in a unified manner. 50 51 ### libdmabufheap system library<a name="section_libdmabufheap"></a> 52 53 The memory system library provides interfaces for the multimedia service to allocate and share shared memory. By allocating and sharing memory between hardware devices and user space, zero-copy memory between devices and processes is implemented to improve execution efficiency. 54 55 ### libmeminfo system library (planning)<a name="section_libmeminfo"></a> 56 57 It provides interfaces for memory usage queries. It is used for memory footprint query, low memory killing and other scenarios. 58 59 ### libmemleak system library (planning)<a name="section_libmemleak"></a> 60 61 It cooperates with malloc_debug to detect memory leaks of native heap. 62 63 ### libpurgeable system library (planning)<a name="section_libpurgeable"></a> 64 65 It provides management interfaces for discardable-type memory. 66 67 ### libspeculative system library (planning)<a name="section_libspeculative"></a> 68 69 It provides management interfaces for speculative-type memory. It is mainly used by system services for data pre-loading. 70 71 ## Usage Guidelines<a name="section_usage"></a> 72 73 System developers can add or remove this part by configuring the product definition JSON file under **/productdefine/common/products** to enable or disable this part: 74 75 ` "utils:utils_memory":{} ` 76 77 ## Repositories Involved<a name="section_projects"></a> 78 79 [utils](https://gitee.com/openharmony/utils)
README_ZH.md
1 # 内存基础库部件 2 3 - [简介](#section_introduction) 4 - [部件架构](#section_architecture) 5 - [目录](#section_catalogue) 6 - [内存基础库](#section_libraries) 7 - [libdmabufheap系统库](#section_libdmabufheap) 8 - [libmeminfo系统库(规划中)](#section_libmeminfo) 9 - [libmemleak系统库(规划中)](#section_libmemleak) 10 - [libpurgeable系统库(规划中)](#section_libpurgeable) 11 - [libspeculative系统库(规划中)](#section_libspeculative) 12 - [使用说明](#section_usage) 13 - [相关仓](#section_projects) 14 15 ## 简介<a name="section_introduction"></a> 16 17 内存基础库部件位于公共基础库子系统中,为上层业务提供对应的操作内存的系统库,保证上层业务的稳定性。 18 19 ## 部件架构<a name="section_architecture"></a> 20 21 **图1** 内存基础库部件架构图 22 23  24 25 | 内存基础库 | 使用者 | 26 | -------------- | -------------------------- | 27 | libdmabufheap | 多媒体相关服务 | 28 | libmeminfo | 内存管理服务 | 29 | libmemleak | 内存管理服务 | 30 | libpurgeable | 图形图像相关服务(规划中) | 31 | libspeculative | 系统服务(规划中) | 32 33 ## 目录<a name="section_catalogue"></a> 34 35 ``` 36 /utils/memory 37 ├── libdmabufheap # DMA (Direct Memory Access) 内存分配链接库 38 │ ├── include # DMA内存分配链接库头文件目录 39 │ ├── src # DMA内存分配链接库源代码目录 40 │ └── test # DMA内存分配链接库自测用例目录 41 ├── libmeminfo # 内存占用查询库 42 ├── libmemleak # 内存泄漏检测库 43 ├── libpurgeable # 可丢弃类型内存管理库 44 └── libspeculative # 投机类型内存管理库 45 ``` 46 47 ## 内存基础库<a name="section_libraries"></a> 48 49 内存基础库是集成内存操作的系统库的部件,对内存操作的系统库进行统一管理。 50 51 ### libdmabufheap系统库<a name="section_libdmabufheap"></a> 52 53 为多媒体相关服务提供分配共享内存的接口,通过在硬件设备和用户空间之间分配和共享内存,实现 54 设备、进程间零拷贝内存,提升执行效率。 55 56 ### libmeminfo系统库(规划中)<a name="section_libmeminfo"></a> 57 58 提供内存占用查询接口,用于内存占用信息查询、低内存查杀等场景。 59 60 ### libmemleak系统库(规划中)<a name="section_libmemleak"></a> 61 62 配合malloc_debug做native heap内存泄漏检测。 63 64 ### libpurgeable系统库(规划中)<a name="section_libpurgeable"></a> 65 66 提供可丢弃类型内存的管理接口。 67 68 ### libspeculative系统库(规划中)<a name="section_libspeculative"></a> 69 70 提供投机类型内存管理接口,用于缓存预读。 71 72 ## 使用说明<a name="section_usage"></a> 73 74 系统开发者可以通过配置productdefine/common/products下的产品定义json文件,增加或移除本部件,来启用或停用本部件。 75 76 ` "utils:utils_memory":{} ` 77 78 ## 相关仓<a name="section_projects"></a> 79 80 [公共基础库子系统](https://gitee.com/openharmony/utils)