-
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...
- 前言 随着业务的发展,日志是必不可少的环节之一,越来越多的日志库如雨后春笋般崭露头角。这里就有很多日志库从快、准、...