我正在处理的行数可以在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);
}
我会考虑从基于文件的数据存储转移到实际的数据库 – Alex 2013-04-22 14:58:25
@亚历克斯请解释 – gasroot 2013-04-22 15:07:32
可能相关:http://stackoverflow.com/q/5240218/56778 – 2013-04-22 15:19:00