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

asp.net|技巧|性能|优化

  我自己的一个项目,需要同时对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 的时候,可能要进行大量的内存分配和回收等工作,消耗了大量内存和资源。

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

时间: 2024-12-22 09:27:29

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

jscript-VB6.0封ASP(不是ASPX)问题在类文件cls如何写runat=server代码

问题描述 VB6.0封ASP(不是ASPX)问题在类文件cls如何写runat=server代码 我用VB6.0封装ASP代码(不是ASPX),其中有一个代码需要为JSCRIPT,也就是解析JSON的代码 <script language="jscript" runat="server"> Array.prototype.get = function(x) { return this[x]; }; function parseJSON(strJSON)

ASP.NET技巧:设置上传文件的最大大小

asp.net|技巧|上传 在web.config中添加httpRuntime元素,如下:<configuration>   <system.web>      <httpRuntime maxRequestLength="8192"         useFullyQualifiedRedirectUrl="true"         executionTimeout="45"         versionHea

MySQL的性能优化和使用技巧

本文是笔者从工作中总结而出.由于时间问题和考虑的不可能足够全面,所以本文会很长时间才会完成,下面会陆续给出内容,与大家分享^_^ 在windows下,配置文件为%mysql_home%/my.ini 在linux下,配制文件为/etc/my.cnf 一 性能优化 1--------INNODB_BUFFER_POOL_SIZE 该参数是innodb引擎的最主要的性能参数,对数据库的性能起了决定性作用.说白了就是数据库的使用内存. 2--------性能分析, show status like '

Python 性能优化技巧总结_python

1.使用测量工具,量化性能才能改进性能,常用的timeit和memory_profiler,此外还有profile.cProfile.hotshot等,memory_profiler用了psutil,所以不能跟踪cpython的扩展: 2.用C来解决费时的处理,c是效率的代名词,也是python用来解决效率问题的主要途径,甚至有时候我都觉得python是c的完美搭档.常用的是Cython,直接把py代码c化然后又能像使用py包一样使用,其次是ctypes,效率最最高的存在,最后还有CPython

asp.net检查服务器上目录或文件是否存在的方法_实用技巧

本文实例讲述了asp.net检查服务器上目录或文件是否存在的方法.分享给大家供大家参考.具体方法分析如下: asp.net为我们提供了文件系统对象了,对于目录与文件判断是否存在我们有System.IO.File.Exists与System.IO.Directory.Exists即可,下面看两个应用实例. 判断文件是否存在: 复制代码 代码如下: using System.IO;  // 还需要命名空间,别忘了 if (System.IO.File.Exists("c:aaa.txt")

ASP.Net MVC_DotNetZip简单使用方法,解决文件压缩的问题_实用技巧

准备工作:  在vs工具栏中找到NuGet   下载DotNetZip 现在就可以使用DotNetZip强大的类库了,在这里我给出一些简单的使用. public ActionResult Export() { using (ZipFile zip = new ZipFile(System.Text.Encoding.Default)) { zip.AddFile(Server.MapPath("~/Img/2.png"), "Images"); zip.AddFil

asp.net fileupload控件上传文件与多文件上传_实用技巧

1.前台文件 Default.aspx: <%@ Page Language="C#" AutoEventWireup="true"CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.

解析如何利用一个ASP.NET Core应用来发布静态文件_实用技巧

虽然ASP.NET Core是一款"动态"的Web服务端框架,但是在很多情况下都需要处理针对静态文件的请求,最为常见的就是这对JavaScript脚本文件.CSS样式文件和图片文件的请求.针对不同格式的静态文件请求的处理,ASP.NET Core为我们提供了三个中间件,它们将是本系列文章论述的重点.不过在针对对它们展开介绍之前,我们照理通过一些简单的实例来体验一下如何在一个ASP.NET Core应用中发布静态文件. 目录 一.以Web的形式读取文件 二.浏览目录内容 三.显示默认页面

ASP.NET Core 导入导出Excel xlsx 文件实例_实用技巧

ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Linux和Mac. EPPlus.Core 是基于EPPlus 更改而来,在Linux 下需要安装libgdiplus . EPPlus:http://epplus.codeplex.com/ EPPlus.Core:https://github.com/VahidN/EPPlus.Core 下面在A