gpt4 book ai didi

java - 使用多线程写入多个文件时如何解决 I/O 瓶颈

转载 作者:行者123 更新时间:2023-12-02 00:34:42 27 4
gpt4 key购买 nike

我目前有一个多线程程序,可以抓取网站并将其文本写入文件。 CPU 方面,我可以同时运行大量线程,但 I/O 很快就会成为瓶颈。我想我可以让每个线程写入数组阻塞队列,但我知道我将生成超过可用 32GB 的 RAM。有没有办法在数组达到一定大小后将其转储到文本文件中,以便我可以释放该空间?或者还有其他方法可以解决我缺少的 I/O 问题吗?

最佳答案

让我们想象一下,SATA 2 Controller 允许以每秒 300 MB 的速度写入。现在的问题是我们想象的计算机的互联网连接带宽是多少。我知道以太网适配器支持的最后生产中的最大带宽是每秒 1 GB。但我认为这样的互联网连接带宽非常昂贵(我什至怀疑某些商业主机是否支持它)。我认为每秒 300 MB 的互联网连接就足够了。让我们的电脑也有这样一个吧。

结果是

      Input (300 MB/s);

Writing (300 MB/s).

恢复:如果要下载Internet,则必须增加连接和磁盘以及磁盘 Controller 。否则 300 MB/s 看起来相当不错。线程对你没有帮助。 CPU 和内存也与我们的问题无关。

关于java - 使用多线程写入多个文件时如何解决 I/O 瓶颈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8141233/

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