使用以下方法创建变量的影响是什么:
Dim ds作为新的DataSet
ds = GetActualData()
其中GetActualData()还创建了一个新的DataSet并返回它?
原来的空DataSet是“New”,它会被留在堆中吗?
如果这类代码存在于许多地方呢?这会影响ASP.NET过程并使其更快地回收吗?
发布于 2010-04-16 14:25:17
其影响是,您正在创建的对象比您需要的多。
未使用的对象将留在堆中,因此最终需要进行垃圾收集。如果您经常这样做,它将导致垃圾收集器不得不更频繁地运行。
然而,与实际工作相比,它应该是最小的,也就是说,实际上填充数据集的工作量要大得多,因此多余的未使用对象几乎可以忽略不计。
它不会导致ASP.NET进程更快地循环,因为对象吞吐量/ GC频率不是一个因素。
尽管影响很小,但代码当然不应该创建那些未使用的对象。也许比性能更重要的是,代码并不真正符合您想要完成的任务。这样的每一个微小的差异都会使代码更难维护。
发布于 2010-04-16 13:47:17
在执行Dim ds as New DataSet时,使用GC.Collect()分配的内存将被垃圾收集。
简单地说,当ds在方法中分配新内存时,旧内存将不会从任何东西中引用,而是会在涉及到的时候被垃圾收集。
https://stackoverflow.com/questions/2653327
复制相似问题