gpt4 book ai didi

java - 在java中处理大文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:40:39 27 4
gpt4 key购买 nike

我有一个大约 10 GB 的大文件。我必须在 Java 中对文件进行排序、过滤等操作。每个操作都可以并行完成。

开启10个线程并行读取文件好不好?每个线程读取 1 GB 的文件。是否有任何其他选项可以解决超大文件的问题并尽快处理它们? NIO 适合这种场景吗?

目前,我正在连续执行操作,处理此类文件大约需要 20 分钟。

谢谢,

最佳答案

Is it good to start 10 threads and read the file in parallel ?

几乎可以肯定不是——尽管这取决于情况。如果它来自 SSD(实际上没有寻道时间),那么可能。如果是传统磁盘,肯定不行。

但这并不意味着您不能使用多个线程 - 您可以创建一个线程来读取文件,只执行最基本的任务以将数据放入可处理的 block 中。然后使用生产者/消费者队列让多个线程处理数据。

除了“排序、过滤等”(这非常模糊)之外,我们无法真正判断流程的并行化程度 - 但尝试在单个文件上并行执行 IO 将 < em>可能没有帮助。

关于java - 在java中处理大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9709782/

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