输入输出的优化
本文关键字:优化 输入输出 | 更新日期: 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
命令吗?它将为任何两个版本提供不同的输出,因此您可以开始比较添加、更改、删除等行。这肯定比解析每行的注释更有效。