我正在建立Android设备和SD卡之间的基准项目,以跟踪不同类型的SD卡之间的性能变化。
在我的基准测试中,我使用了许多io方法,以及对SD卡的逻辑和物理访问。
有时我控制内部缓冲区的大小(使用setnvbuf()
)
在每个文件读/写之间我想清除系统的缓存或内部缓冲区。 管理这个的最佳方法是什么?
我的项目是部分原生的,使用ndk,所以如果需要我可以使用c / cpp方法。
感谢。
答案 0 :(得分:0)
基准测试文件系统很难。有各种级别的缓存。当您进行i / o操作时,Linux(内核)将缓存您的数据并且很难管理该缓存,例如,请参阅此cyanogenmod wiki page。实际上你不应该依赖这样的机制,而是使用更长时间运行的测试来查看sdcards的性能 - 这通常会阻止它们(我很认真)。
检查执行文件系统基准测试的长期项目也是一个非常好的主意,例如iozone。