したがって、私はこれらの巨大な XML ファイル (巨大とは、1.5GB 以上という意味です) を持っていますが、それらには CRLF がありません。これらのファイルの違いを見つけるために、差分のようなプログラムを実行しようとしています。
メモリ不足のために爆発しない差分プログラムをまだ見つけていないので、タグを閉じた後に CRLF を追加するのが最善の策であると判断しました。
文字ごとに読み取り、「>」の後に改行を追加するPythonスクリプトを作成しました。問題は、これを 1995 年頃のシングル コア PC かばかげたもので実行していて、両方を同時に変換した場合、1 時間あたり約 20MB しか処理していないことです。
代わりにこれを C#/C/C++ で書くことで何らかの利点が得られるかどうか、何か考えはありますか? そうでない場合、バイトごとに実行される差分プログラムを知っている人はいますか? ありがとう。
編集:
これが私の処理関数のコードです...
def read_and_format(inputfile, outputfile):
''' Open input and output files, then read char-by-char and add new lines after ">" '''
infile = codecs.open(inputfile,"r","utf-8")
outfile = codecs.open(outputfile,"w","utf-8")
char = infile.read(1)
while(1):
if char == "":
break
else:
outfile.write(char)
if(char == ">"):
outfile.write("\n")
char = infile.read(1)
infile.close()
outfile.close()
EDIT2: すばらしい回答をありがとう。読み取りサイズを増やすと、信じられないほど速度が向上しました。問題が解決しました。