最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

ASP.NET技巧:同时对多个文件进行大量写操作对性能优化

来源:动视网 责编:小采 时间:2020-11-27 22:45:50
文档

ASP.NET技巧:同时对多个文件进行大量写操作对性能优化

ASP.NET技巧:同时对多个文件进行大量写操作对性能优化: 我自己的一个项目,需要同时对65536个文件进行多次写操作。 如果先全部打开所有的文件,然后重复写,最后关闭所有的文件。那么第一次写操作全部完成需要16分钟左右,而第二次就需要40分钟了。没有继续测试了。 for (int i = 0; i < 65536;
推荐度:
导读ASP.NET技巧:同时对多个文件进行大量写操作对性能优化: 我自己的一个项目,需要同时对65536个文件进行多次写操作。 如果先全部打开所有的文件,然后重复写,最后关闭所有的文件。那么第一次写操作全部完成需要16分钟左右,而第二次就需要40分钟了。没有继续测试了。 for (int i = 0; i < 65536;


  我自己的一个项目,需要同时对65536个文件进行多次写操作。

  如果先全部打开所有的文件,然后重复写,最后关闭所有的文件。那么第一次写操作全部完成需要16分钟左右,而第二次就需要40分钟了。没有继续测试了。

            for (int i = 0; i < 65536; i++)
            {
                fileStream[i] = new FileStream(buffDir+"\\"+ i.ToString() + ".dat", FileMode.Create,FileAccess.Write, FileShare.Write,14000);
            }
             write;
                write;
                write;
                ........
               for (int i = 0; i < 65536; i++)
            {
                fileStream[i] .close();
            }

  如果在写操作的时候只打开相应的一个文件,写完关闭。那么所有写操作完成只要2分30秒左右。

  循环


   for (int i=0;i<65536;i++)
{
  open;
  write;
  close;
}

  由此可见,第二种办法性能要远大于第一种。一次打开所有的文件,需要占用不小的内存,最主要的是.net在处理filestream 的时候,可能要进行大量的内存分配和回收等工作,消耗了大量内存和资源。

  另外我也做个测试,如果文件数目比较小,那么第一种的性能又要大大好于第二种。

 

文档

ASP.NET技巧:同时对多个文件进行大量写操作对性能优化

ASP.NET技巧:同时对多个文件进行大量写操作对性能优化: 我自己的一个项目,需要同时对65536个文件进行多次写操作。 如果先全部打开所有的文件,然后重复写,最后关闭所有的文件。那么第一次写操作全部完成需要16分钟左右,而第二次就需要40分钟了。没有继续测试了。 for (int i = 0; i < 65536;
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top