使用New DataSet和DataSet声明变量

时间:2010-04-16 13:44:08

标签: vb.net variables memory-management dataset

使用以下方法创建变量有什么影响:

  

Dim ds作为新数据集
  ds = GetActualData()

其中GetActualData()还创建一个新数据集并返回它? 那些'New'ed的原始空数据集是否刚刚留在堆中?

如果这种代码在很多地方怎么办?这会影响ASP.NET进程并使其更快地回收吗?

2 个答案:

答案 0 :(得分:1)

执行Dim ds as New DataSet时,将使用GC.Collect()分配的内存进行垃圾回收。

简单地说 - 当ds在方法中分配新内存时,旧内存将不会被引用,并且会在需要时进行垃圾回收。

答案 1 :(得分:1)

影响是您创建的对象超出了您的需要。

未使用的对象将留在堆上,因此最终需要进行垃圾回收。如果你这么做,它将导致垃圾收集器不得不更频繁地运行。

与完成的实际工作相比,它应该是最小的,即实际填充数据集的工作要多得多,以至于额外的未使用对象几乎可以忽略不计。

它不会导致ASP.NET进程更快地回收,因为对象吞吐量/ GC频率不是一个因素。

尽管影响很小,但代码当然不应该创建那些未使用的对象。也许比性能更重要的是代码与您想要完成的内容并不真正对应。像这样的每一个小差异都会使代码难以维护。