输入输出的优化

时间:2013-04-22 09:17:33

标签: c# .net file perforce

我正在处理行数为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);
}

1 个答案:

答案 0 :(得分:1)

您是否考虑过使用diff2命令?它会为您提供任意两个版本的差异输出,因此您可以开始比较添加,更改,删除等行。它肯定比解析每一行的注释更有效。