gpt4 book ai didi

c - 文件 I/O 减慢了我的 C 循环

转载 作者:太空宇宙 更新时间:2023-11-04 12:36:14 25 4
gpt4 key购买 nike

我有一个 C 程序,它在一个循环中执行“填充”操作,其中每次迭代都以某个赫兹为单位进行计时。这个循环曾经能够以大约 80k hz 的频率运行。

然后我在循环中添加了一些文件 I/O(读取/写入 linux 文件描述符),现在看来我无法打破 ~6k 循环/秒。这些操作本身非常便宜,所以我怀疑是某种内核上下文切换导致了大量延迟。那么,两个问题:

  • 如何检查是否属于这种情况?
  • 除了对我的内核进行实时修补之外,我还能做些什么吗?

最佳答案

不是写入磁盘,而是写入 tmpfile()。查看性能是否有所提高。在一个体面的实现中,它应该保存在内存中,直到它变得非常大。如果这解决了您的问题,那么写入延迟会减慢您的速度。如果一次性清除整个 tmpfile,您可能会看到一些改进。将缓冲区设置为一个巨大的值将具有相同的效果。

关于c - 文件 I/O 减慢了我的 C 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41681241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com