当前位置:  开发笔记 > 编程语言 > 正文

重构 - System.OutOfMemoryException

如何解决《重构-System.OutOfMemoryException》经验,为你挑选了1个好方法。



1> MatthewMarti..:

连接字符串超过几次时使用StringBuilders.

特别是这里:

detailOutput += ReportDetails;

还使用DataReader.DataReader将返回支持IDataRecord的记录,IDataRecord具有与DataRow类似的接口.

当我在ASP.NET中使用DataTables和DataSets时,你正在使用大约相同的行数来处理OOM,其中工作进程的内存有限,然后才会因为过多的内存使用而获得回收.这就是为什么我一直在积极地切换到DataReaders.

更新:

DataReader解决方案看起来像......(TableReaders存在,但它不会在内存保护方面为你买任何东西,你只需要一个与DataReaders更相似的接口)

internal static String SaveARSUpdateHTML(DbDataReader myReader, string fileName)
    {

if (myReader.HasRows)
  while (myReader.Read())
  { 
      object something = myReader["TF"];
  }

else
  Console.WriteLine("No rows returned.");

myReader.Close();

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有