我对大型二进制文件的预读性能有疑问。
我的策略是
- 使用 fread() 从大型二进制文件中读取固定大小的块。(例如 10MB)
使用 usleep() 休眠 n 毫秒,仅用于预读性能测量。
重复此操作,直到读取整个文件。
然后,我对上述策略进行了实验,以测量预读性能。环境是
- CentOS 7
- 4GB 二进制文件
- 块大小为每 2MB 2 ~ 300MB
- 我测试的睡眠时间是 5、10、50、100、300 毫秒并且没有睡眠
正如您在结果中看到的,当块大小较小且睡眠时间足够长以进行预读时,读取时间很短。chunk size 越大或 sleep time 越短,读取时间越接近 20 秒左右。
然后,我想对该图进行回归分析。我应该使用什么功能?我的策略的复杂性是什么?