Я использую метод stati c в C# для решения численной задачи. Я делаю это несколько раз во время выполнения моей программы. Через некоторое время программа вылетает из-за переполнения памяти. Я думаю, что что-то остается в основной памяти каждый раз, когда я вызываю метод stati c. Я думаю, что это объект Dictionary, который я использую следующим образом:
public static Solution solve(Problem p)
{
Dictionary<String, List<int>> tours = new Dictionary<string, List<int>>();
/*do stuff*/
List<int>[] toursarray = new List<int>[tours.Count];
int counter = 0;
foreach (KeyValuePair<String, List<int>> kvp in tours)
{
toursarray[counter] = kvp.Value;
counter++;
}
tours.Clear();
tours = null;
/*do stuff*/
for (int t = 0; t < toursarray.Length; t++)
toursarray[t] = null;
}
Есть ли какой-либо инструмент отладки, который я могу использовать, чтобы проверить, остались ли в памяти List<int>
объекты? Я использую сообщество Visual Studio. Кроме того, что я могу сделать, чтобы избежать «скрытых объектов» в памяти?