簡單的記憶體回收指令
System.Diagnostics.Process.GetCurrentProcess().MinWorkingSet = New IntPtr(5)
程式使用記憶體會大幅下降 20,000 K 以下
不知道會不會有副作用?
2013 - 03 - 04
即使執行上列命令碼, .NET 在過一段時間後, 又會把記憶體堆疊上去, 並造成 CPU 使用率突然上升, 所以不能常常執行上面的命令碼, 後來上網 google 後, 有發現一段程式碼, 似乎可以解決
2013 - 03 - 04
即使執行上列命令碼, .NET 在過一段時間後, 又會把記憶體堆疊上去, 並造成 CPU 使用率突然上升, 所以不能常常執行上面的命令碼, 後來上網 google 後, 有發現一段程式碼, 似乎可以解決
For Each asm As Assembly In AppDomain.CurrentDomain.GetAssemblies() For Each type As Type In asm.GetTypes() If type.ContainsGenericParameters = False Then Dim myFieldInfo As FieldInfo = _ type.GetField("__ENCList", BindingFlags.NonPublic Or BindingFlags.Static) If IsNothing(myFieldInfo) = False Then Dim obj As Object = myFieldInfo.GetValue(Nothing) If obj.GetType.Equals(GetType(List(Of WeakReference))) Then Dim al As List(Of WeakReference) = DirectCast(obj, List(Of WeakReference)) If al.Count > 0 Then al.Clear() End If Else Console.WriteLine(myFieldInfo.FieldType) End If End If End If Next type Next asm
留言