• 恒
    2019-01-01
    老师好,文件IO这一块您讲的非常好,对我的帮助很大,谢谢了
    
     8
  • 廖凡
    2019-07-15
    老师好,请教下:
    文章提到mmap的可靠性高。但是在内核崩溃、突然断电的情况下也一样有可能引起内容丢失。既然会有丢失,那mmap的可靠性高体现在哪里呢。
    xlog和mmkv底层都是通过mmap来实现的,都宣称可以提高可靠性,这里实在不懂,一定要回复啊,困扰我一段时间了。

    作者回复: 直接写文件,也可能会遇到内核崩溃,突然断电的情况,同样会丢失的,除非采用同步的方式写。

    mmap的高可靠性是对比内存而言的

    
     6
  • 星风雪雨
    2019-11-21
    mmap,一次拷贝;我的理解是磁盘拷贝到主存,而普通文件是两次拷贝:磁盘-->页缓存-->用户空间,虽然是两次拷贝,但是页缓存-->用户空间是在内存拷贝,虽然多了一次,但是这次是内存操作,应该是很快的;那mmap速度相对读文件快,主要原因是系统调用少引起的吗?

    作者回复: 用户态的改变 + 频繁操作,也是非常耗时的

    
     2
  • Sharry
    2019-06-20
    Binder 通信的图有些不能理解

    进程的用户空间与内核空间是通过 binder_mmap 类似匿名映射的方式分配的, 用户与内核之间是不需要拷贝的
    数据的拷贝, 应该在内核空间不同进程的 Binder 缓冲区

    不知理解的是否正确, 请老师指教
    展开

    作者回复: 用户到内核是要拷贝一次的

    
     2
  • 董尚斌
    2019-01-01
    真值,以前就只知道,写文件,读文件,具体实现的代码,怎么写。现在发现有些情况下的文件读写速度在不同设备上的表现方式的原因。

    我做的最多的文件读操作是,全盘扫描本地文件(涉及读文件里面的字节来区分是否符合要求),以及多进程写日志的问题(aidl统一交给主应用的主进程,涉及文件锁和磁盘io频繁的问题)

    听了最近的两节,感觉,这些地方可以适当的优化下。

    谢谢,老师。
    展开
    
     2
  • 廖凡
    2019-07-16
    你看我这么理解对不对。mmap的可靠性是相对的文件缓存读写的,并不能彻底解决可靠性问题,事实上哪怕同步写文件方式也不能保证绝对可靠。
    mmap的相对文件缓存io,可靠性体现在app异常退出这些场景,比如crash,内存不足被系统强杀等等。这些是文件io读写所不能解决的问题。往大了说,mmap只要操作系统不死,可靠性就能保证。

    作者回复: 文件io也是系统不死,可靠性也是可以保证的

    
     1
  • Dimple
    2019-03-16
    看了中这部分,已经对I/O有了更深刻的认识,感觉自己学的Android都是皮毛呀
    
     1
  • Swing
    2019-02-13
    很好奇,像微信这样一个权限普通的app,怎么接入的自己的小文件系统(或者说 替换原生的文件系统)?

    作者回复: 这个小文件系统是应用层的方案,只是把一大堆的小文件组织成一个超大文件。并没有替换原生的文件系统

     1
     1
  • 放个屁臭到了自己
    2019-08-31
    想请教下,mmap 映射的是用户缓冲区和 page cache 页缓存吗?copy/write 也只需要发生在 page cache 和磁盘?

    作者回复: 文件读写 mmap 映射的就是page cache,但是也不是绝对的

    
    
  • 廖凡
    2019-07-16
    嗯,那mmap可靠仅仅只对用户态缓存的缓存而言的,用户态缓存在app crash就没有了。而mmap是直接操作内核页的,所以app退出了也可以写进文件。
    
    
  • neo
    2019-06-14
    好强
    
    
  • taotaomami
    2019-01-06
    “iowait高,io一定有问题” 这个观点有点异议,借用网上一篇文章对iowait的解释“%iowait 表示在一个采样周期内有百分之几的时间属于以下情况:CPU空闲、并且有仍未完成的I/O请求” iowait这个参数的值对我们观察io活动意义比较小

    作者回复: 这里其实想表达的是这段时间的io操作一定会比较高的意思,并不一定能说明代码有问题

    
    
  • elephant
    2019-01-02
    "微信也开发了一套叫 SFS 的小文件管理系统,主要用在朋友圈图片的管理...."

    真的是跪着看微信的技术方案 orz
    
    
我们在线,来聊聊吧