logan与mmap

  • 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.由操作系统调用,将脏页回写到磁盘(通常这是异步的)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容