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