honami520 发表于 2022-12-16 17:56:32

为什么filex第一次写入操作耗时很久

我把filex移植到ZYNQ平台了,跑freertos。核心板上面有一个8GB的emmc,我用filex来保存日志文件。
现在做了一个例子,就是上电后media_open,然后1秒钟往文件里面写入1KB的内容。
这个写入步骤是这样的
fx_file_open
fx_file_write
fx_file_close
fx_media_flush
delay_ms(1000)

然后我会打印这个循环所耗时间。现在就是发现,第一次耗时很久,而且会随着文件变大,时间也会变大。
正常的时候1KB写入时间是10ms左右,但是第一次最小也是600多ms,然后文件变大到2M以上后,这个时间也变成了800多ms了。
那如果这个时间按照1MB增加100ms来算,我文件增大到20MB后,第一次写入岂不是要3秒钟左右了。

eric2013 发表于 2022-12-17 11:45:36

FAT类文件系统都有这个问题,随着文件加大,open的时间会越来越长。

不过你这个才2M,写入就需要800ms,确实有点长了。

honami520 发表于 2022-12-19 13:52:26

问题其实没有解决,但是观察了几天,发现了些规律。
它这个时间是随着写入文件整体大小,一点点去增大的。但是,增加到1秒左右后,又会变回一个很小的时间,周而复始,所以基本不影响使用。
这个时间变化仅限于“系统上电后的第一次写入时间”。
正常写入时间是比较稳定的,并不会有很明显的变化。

哲学家 发表于 2023-3-1 20:25:53

filex的日期和时间是不是需要修改_fx_system_date_get函数啊?
页: [1]
查看完整版本: 为什么filex第一次写入操作耗时很久