У меня есть класс (слишком сложный для публикации кода), который, я думаю, может иметь утечку памяти. Однако рабочий набор процесса и размер виртуальной памяти говорят об обратном.
Я создаю и уничтожаю класс следующим образом:
Dim vdt As ValidateDTC
Dim prc As Process = Process.GetCurrentProcess
For I As Integer = 1 To 100
Debug.Print("1:" & "WorkingSet64:" & prc.WorkingSet64.ToString & " VirtualMemorySize64:" & prc.VirtualMemorySize64.ToString)
vdt = New ValidateDTC
Debug.Print("2:" & "WorkingSet64:" & prc.WorkingSet64.ToString & " VirtualMemorySize64:" & prc.VirtualMemorySize64.ToString)
vdt = Nothing
Debug.Print("3:" & "WorkingSet64:" & prc.WorkingSet64.ToString & " VirtualMemorySize64:" & prc.VirtualMemorySize64.ToString)
Next i
Как только класс создается впервые, рабочий набор и виртуальный размер памяти являются то же самое на протяжении всего теста. Моя проблема в том, что график отладчика «Память процесса» проходит через тест. Если я сделаю перерыв в l oop и сделаю снимок памяти, я увижу, как увеличиваются всевозможные числа.
Класс в конечном итоге будет используется в потоках (через фонового рабочего).
Есть проблема или нет.