输入输出的优化

本文关键字:优化 输入输出 | 更新日期: 2023-09-27 18:10:22

我正在处理的文件行数可以在60000行。这些文件以强制方式存储。为了计算一些统计数据,如添加的行数和注释的行数,我使用了repository.GetFileAnnotations()方法,它给出了文件的内容,结果作为FileAnnotation的Ilist返回,每个FileAnnotation封装了这个文件的一行。因此,我不得不创建一个临时文件,并使用foreach读取所有的列表,并在此文件中写入每一行。这使得应用程序不够快。我怎样才能继续优化这个机制。

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);
}

输入输出的优化

您考虑过使用diff2命令吗?它将为任何两个版本提供不同的输出,因此您可以开始比较添加、更改、删除等行。这肯定比解析每行的注释更有效。