-
mmap作用
应用场景:MMKV, 写日志
适合频繁读,但是logan只是少量的写入
mmap不会为文件分配物理内存
写操作过多时,会有大量的脏页回写,随机写很多的情况下,写的效率不一定比常规快
-
logan里mmap文件作用
相当于缓存,或者是滑动窗口的概念
当mmap文件超过阈值,把mmap的数据写入日志文件;或者是生命周期方法触发把mmap数据写入日志文件
-
哪些情况下mmap会回写日志
内存不足
进程crash
调用msync或者 munmap
不设置 MAP_NOSYNC 情况下 30s-60s(仅限FreeBSD)
回写的数据,有没有做压缩和加密?
-
mmap回写的话,写入哪些内容?
待补充
-
什么时候去读取回写的日志
app启动的时候
-
会有其他场景下丢失数据的情况吗?
好像都能回写,丢失数据的情况暂时未知
-
如何查看logan的mmap文件的内容
待补充
-
解析logan的日志文件
待补充
-
什么时候压缩
待补充
-
mmap写入文件流程:
- 1.进程(用户态)将需要写入的数据直接copy到对应的mmap地址(内存copy)
- 2.1若mmap地址未对应物理内存,则产生缺页异常,由内核处理
- 2.2 若已对应,则直接copy到对应的物理内存
- 3.由操作系统调用,将脏页回写到磁盘(通常这是异步的)
logan与mmap
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 前言 上一篇文章会了JNI,来看看Logan撸完Logan的逻辑,接着我们就来一起思考,一个日志文件怎么写到文件的...
- 这篇文章讲的很详细很好。Android-内存映射mmap_mcryeasy的博客-CSDN博客[https://b...
- 前言 随着业务的发展,日志是必不可少的环节之一,越来越多的日志库如雨后春笋般崭露头角。这里就有很多日志库从快、准、...