我在 android jni 中使用 fwrite 将缓冲区(大小为 460800)写入磁盘,大多数情况下花费大约 10-40ms,这是可以接受的,但有时,它会花费 500--800ms,那太慢了,我不能接受。
有人知道为什么会这样吗?以及如何解决这个问题。
最佳答案
有时,保存在您写入的 FILE
中的内部缓冲区会刷新到操作系统。有时,操作系统会将其保存在内部缓存中的数据刷新到您正在写入的闪存中。闪存速度很慢,因此如果您写入的内容超出了内存的处理能力,则必须等待。如果您想让数据最终存储在闪存中,则无法绕过这种等待。
关于c - android中的fwrite有时很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35792601/