stdout
,因此它可能只是显示在屏幕上,也可能被重定向到文件中。我的问题是如何选择一种最佳的缓冲区大小,以存储在RAM中的数据?输出数据本身并不特别重要,所以我们假设它是生成大量随机整数的数据。
我打算创建两个线程:一个线程负责生成数据并将其写入缓冲区,另一个线程则将该缓冲区写入
stdout
。这样,我就可以在上一个缓冲区仍在被写入stdout
时开始生成下一个输出缓冲区。需要明确的是,我的问题并不是关于如何使用
malloc()
和pthread_create()
等函数。我的问题纯粹是关于如何选择一个字节数(512、1024、1048576)作为最佳缓冲区大小,从而获得最佳性能?理想情况下,我希望找到一种方法,在运行时动态地选择最佳缓冲区大小,以便我的程序可以适应任何硬件条件。我已经尝试搜索了解答案,虽然我找到了一些关于缓冲区大小的线程,但没有找到与这个问题特别相关的内容。因此,我想要发布这个问题,希望能够得到不同的观点,并提出比我个人更好的解决方案。
stdout
,然后循环。这就是为什么我现在考虑如何提高性能。 - greydamiandd(1)
程序:$ a.out | dd bs=128k
- DigitalRoss