在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/人工智能/ 如何快速合并1000個(gè)txt文件,每個(gè)文件2G大小?

如何快速合并1000個(gè)txt文件,每個(gè)文件2G大???

1.有沒有快速分組,合并的算法?
2.單線程合并太慢了,并行合并會不會大幅度提高合并效率?
3.歡迎提出任何意見或者建議。

回答
編輯回答
耍太極

你沒有說明合并文件時(shí)有沒有什么要求,所以先假設(shè)只是將兩個(gè)文件簡單地拼接在一起,沒有什么額外的操作。那么,整個(gè)過程的最大瓶頸其實(shí)應(yīng)該是文件讀寫操作,所以我覺得開多線程來操作對性能應(yīng)該沒什么提升,老老實(shí)實(shí)地逐個(gè)讀取文件,在尾部追加可能反而是最快的。

2018年5月3日 06:39
編輯回答
執(zhí)念

我覺得可以使用分治法,開多個(gè)線程,并將任務(wù)分解,類似Java的Fork-join框架,大概是這么個(gè)流程

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個(gè)文件
    pass
def combine2file(a,b):
    #合并稍微大一些的文件并刪除中間文件
    pass
2018年9月6日 02:20