我在绘图应用中使用iOS上的mmap
功能。我有一个使用mmap
的文件,然后我从该内存创建一个CGBitmapContext
。用户可以用手指在CGBitmapContext
上执行许多核心图形操作,这将导致内存不断更新。
这种情况多久会冲到闪存存储器中,这是否会导致闪存存储器耗尽或性能下降?我的测试中没有发现任何不好的内容,但我对mmap
不太熟悉,无法确切知道。
答案 0 :(得分:1)
iOS对于刷新磁盘的频率非常聪明。我注意到,当我对应用程序进行后台处理时,只要我调用msync
,即msync(self.memoryMap, self.memoryMapLength, MS_SYNC);
,它就会正常刷新。
当我使用该应用程序时,即使发生崩溃或突然终止,通常也会保存所有数据。如果我在调试时杀了我的应用程序,有时最后的几个更改不会保存,但通常一切都会保存。
所以我的结论是,这不是一个问题。 iOS不是经常写入磁盘,而是以智能间隔写入磁盘。