如何快速合并1000个txt文件,每个文件2G大小?

发布于 2022-09-07 03:41:58 字数 74 浏览 8 评论 0

1.有没有快速分组,合并的算法?
2.单线程合并太慢了,并行合并会不会大幅度提高合并效率?
3.欢迎提出任何意见或者建议。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

左秋 2022-09-14 03:41:58

你没有说明合并文件时有没有什么要求,所以先假设只是将两个文件简单地拼接在一起,没有什么额外的操作。那么,整个过程的最大瓶颈其实应该是文件读写操作,所以我觉得开多线程来操作对性能应该没什么提升,老老实实地逐个读取文件,在尾部追加可能反而是最快的。

岁月流歌 2022-09-14 03:41:58

我觉得可以使用分治法,开多个线程,并将任务分解,类似Java的Fork-join框架,大概是这么个流程

def combine(L, R):
    if R - L < 10:
        return combine10files_in_thread(L, R)
    else:
        mid = (R - L) // 2
        a = combine(L, mid)
        b = combine(mid + 1, R)
        combine2file(a, b)
def combine10files_in_thread(L, R):
    #在新线程合并10个文件
    pass
def combine2file(a,b):
    #合并稍微大一些的文件并删除中间文件
    pass
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文