我有一个文件描述符,我总是写两个浮点数。请注意,在将任何内容写入文件之前,我总是调用rewind(),这意味着我总是写入第一行。基本上,把它看作是维护一个文件内的“当前状态”。写完之后我还会打电话给fflush()。我在应用程序中遇到延迟尖峰,当我检查时,我发现fflush()通常需要2-3微秒左右(是的,我有一个快速的服务器),但在其他时间(大约6-7“正常写入-flush循环“),我看到所用的时间是扣球高达数千次(15000+微秒)为什么fflush()花费可变的时间冲刷同一条数据
你能告诉我,我必须在这种情况下检查?如何修复/调试此问题?
好吧,你正在写某种存储,可能(你没有说)硬盘。我能想到的两种本地持久性存储机制(HDD和SSD)将根据他们必须做的事情而具有不同的响应时间。 150000 *微*秒仍然是*真的很短的时间*。 –
会使用内存映射文件的帮助吗? – Chani
@Wildling *将使用内存映射文件帮助?*阅读[本文](http://marc.info/?l=linux-kernel&m=95496636207616&w=2)Linux Torvalds。 'mmap()'是** NOT **一些使一切更快的魔法。 –