mmap.md

mmap

概述

https://zhuanlan.zhihu.com/p/366964820

mmap 机制

mmap 通过将文件直接映射到进程的地址空间来提高文件访问的效率。

优势

  1. 性能:对于大文件的随机读写,mmap 可以提供更高的性能,因为它避免了传统的文件读写中的数据复制步骤。
  2. 简易的接口mmap 提供了一种将文件内容直接映射为内存的方法,这使得读写文件就像访问内存一样简单。
  3. 系统优化:利用操作系统的页面缓存和虚拟内存系统,可以有效地处理大文件。

劣势

  1. 安全风险:直接操作内存可能导致程序崩溃和数据损坏。
  2. 复杂性:需要手动管理内存映射的生命周期,错误处理更加复杂。
  3. 可移植性和兼容性问题:不同操作系统对 mmap 的支持不同,可能需要平台特定的代码。(检测适配 鲲鹏 kylinos v10)

适用场景

  • 对大型文件进行高效的随机读写。
  • 处理有限的结构化数据,不需要复杂的查询或事务处理。
  • 在内存和文件之间快速共享数据。

数据库(DB)

数据库是用于存储、检索、更新和管理数据的系统,它提供了数据的结构化组织、查询语言和事务处理。

优势

  1. 数据管理:提供复杂的数据查询、索引和管理能力。
  2. 事务支持:支持事务处理,包括原子性、一致性、隔离性和持久性。
  3. 易于使用和维护:提供了用户友好的接口和工具,简化了数据管理和维护。
  4. 扩展性和灵活性:支持大量数据和多种数据类型,易于扩展和修改数据模型。
  5. 安全性:提供访问控制和数据加密功能。

劣势

  1. 性能开销:对于简单的数据访问,数据库的额外功能可能带来性能开销。
  2. 复杂性:数据库的安装、配置和维护相对复杂。
  3. 成本:某些数据库软件可能需要购买许可证。

适用场景

  • 需要复杂查询和数据分析的应用。
  • 需要事务处理和数据完整性保证的场景。
  • 处理大量结构化数据和关系型数据。
  • 需要多用户并发访问和数据安全性的应用。

mmap.md
https://abrance.github.io/2024/08/29/mdstorage/domain/golang/mmap/
Author
xiaoy
Posted on
August 29, 2024
Licensed under