c - android中的fwrite有时很慢

标签 c java-native-interface

我在 android jni 中使用 fwrite 将缓冲区(大小为 460800)写入磁盘,大多数情况下花费大约 10-40ms,这是可以接受的,但有时,它会花费 500--800ms,那太慢了,我不能接受。

有人知道为什么会这样吗?以及如何解决这个问题。

enter image description here

最佳答案

有时,保存在您写入的 FILE 中的内部缓冲区会刷新到操作系统。有时,操作系统会将其保存在内部缓存中的数据刷新到您正在写入的闪存中。闪存速度很慢,因此如果您写入的内容超出了内存的处理能力,则必须等待。如果您想让数据最终存储在闪存中,则无法绕过这种等待。

关于c - android中的fwrite有时很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35792601/

相关文章:

c - 是 int foo() { return foo();递归函数?

javascript - 在 Google Apps 脚本中使用 Crypto-JS - 什么是 C.lib?

java - 内存分配究竟是如何进行的,Java 和 C 如何交互以跟踪同一个对象?

java - 从 JNI 调用返回阿拉伯语

c - Winsock2.h 似乎从 mingw 中丢失?

c - 在 ansi C 中添加 double 会产生意想不到的结果

c - 通过snprintf将uint8_t/uint16_t数据类型转换为char[]

java - 从平台代码访问 android.provider.Settings.System 值

android - 什么是 Android JNI 应用程序上下文中的模块?

java - 如何使用 JNI 在 Delphi 中设置日期