mmap.md
mmap
概述
https://zhuanlan.zhihu.com/p/366964820
mmap 机制
mmap
通过将文件直接映射到进程的地址空间来提高文件访问的效率。
优势
- 性能:对于大文件的随机读写,
mmap
可以提供更高的性能,因为它避免了传统的文件读写中的数据复制步骤。 - 简易的接口:
mmap
提供了一种将文件内容直接映射为内存的方法,这使得读写文件就像访问内存一样简单。 - 系统优化:利用操作系统的页面缓存和虚拟内存系统,可以有效地处理大文件。
劣势
- 安全风险:直接操作内存可能导致程序崩溃和数据损坏。
- 复杂性:需要手动管理内存映射的生命周期,错误处理更加复杂。
- 可移植性和兼容性问题:不同操作系统对
mmap
的支持不同,可能需要平台特定的代码。(检测适配 鲲鹏 kylinos v10)
适用场景
- 对大型文件进行高效的随机读写。
- 处理有限的结构化数据,不需要复杂的查询或事务处理。
- 在内存和文件之间快速共享数据。
数据库(DB)
数据库是用于存储、检索、更新和管理数据的系统,它提供了数据的结构化组织、查询语言和事务处理。
优势
- 数据管理:提供复杂的数据查询、索引和管理能力。
- 事务支持:支持事务处理,包括原子性、一致性、隔离性和持久性。
- 易于使用和维护:提供了用户友好的接口和工具,简化了数据管理和维护。
- 扩展性和灵活性:支持大量数据和多种数据类型,易于扩展和修改数据模型。
- 安全性:提供访问控制和数据加密功能。
劣势
- 性能开销:对于简单的数据访问,数据库的额外功能可能带来性能开销。
- 复杂性:数据库的安装、配置和维护相对复杂。
- 成本:某些数据库软件可能需要购买许可证。
适用场景
- 需要复杂查询和数据分析的应用。
- 需要事务处理和数据完整性保证的场景。
- 处理大量结构化数据和关系型数据。
- 需要多用户并发访问和数据安全性的应用。
mmap.md
https://abrance.github.io/2024/08/29/mdstorage/domain/golang/mmap/