行数が60000行になるファイルを扱っています。これらのファイルは perforce に保存されます。追加された行数やコメントの行数などの統計を計算するためにrepository.GetFileAnnotations()
、ファイルの内容を与えるメソッドを使用しました。結果は FileAnnotation の Ilist として返され、各 fileAnnotation はこのファイルの行をカプセル化します。したがって、一時ファイルを作成し、foreach を使用してすべての Ilist を読み取り、このファイルにすべての行を書き込む必要があります。これにより、アプリケーションの速度が不十分になります。このメカニズムを最適化するにはどうすればよいですか。
string tempfile = CreateTmpFile();
FileSpec fso = new FileSpec(FileSpec.DepotSpec(fsd.depotPath).DepotPath, Revision.Head);
IList<FileSpec> fsos = new List<FileSpec>();
fsos.Add(fso);
Options opts = new Options(); opts.Add("-a", "");
IList<FileAnnotation> fas = rep.GetFileAnnotations(fsos, opts);
foreach (FileAnnotation fa in fas)
{
lines4 += fa.Line;
UpdateTmpFile(tempfile, fa.Line);
}