Programming in vb.net: How to deallocate memory? on newest questions tagged vb.net – Stack Overflow
I have the following method for looping through a table, changint some values in every row and saving the chages back to the database. To make things go faster I am fetching data in sets of 10,000 rows. This is a large table with over 25 million records in it.
The problem is that my application doesn’t seems to be releasing any memory. I have tried redeclaring the
records variable to
nothing or explicitly caling the garbage collector but the memory stays there.
Runnning the built-in VS10 profiler I can see that the culprit is the
system.linq.enumerable.tolist() method which takes up over 98% of my memory. How do I release that memory after the call to
db = New databaseEntities Dim size = 25000000 Dim stepSize = 10000 For i = 0 to size Step stepSize Dim sql = (From A In db.table).OrderBy(Function(A) A.Column).Skip(i).Take(stepSize) Dim records As New List(Of table) records = sql.ToList For Each record In records 'do some work Next db.SaveChanges() records = Nothing GC.Collect() Next
Programming in vb.net: programming-in-vb-net