Я могу выполнить сборку "мусора".NET из WinDbg?

Я пробовал с Java-8

DoubleSummaryStatistics statistic = IntStream.range(0, 8)
    .boxed() //int to Integer
    .collect(Collectors.summarizingDouble(i -> Math.random() * 4.1)); //collect to statistic

System.out.println(statistic.getAverage());

Вы получите среднее значение из 8 результатов из Math.random()*4.1

15
задан Mark 24 April 2009 в 14:00
поделиться

4 ответа

Я не думаю, что существует любой способ выполнить сборку "мусора".NET из WinDbg, но я также не думаю, что это необходимо.

Посмотрите Лакомые кусочки Производительности Rico Mariani - Разыскивающий утечки управляемой памяти (как найти утечку GC) для получения информации об обнаружении, какой материал находится на Вашей "куче".

Дополнительный возможно полезные ссылки:

4
ответ дан 1 December 2019 в 05:02
поделиться

Я не полагаю, что можно инициировать GC от WinDbg.

Вот некоторые полезные инструменты, на которые я приехал для доверия для отслеживания выделения памяти:

  • SOSEX - дальнейшее расширение для WinDbg для дополнения SOS, который добавляет! dumpgen для дампа объектов от конкретного поколения (большой для выяснения, что находится на LOH и в Генерале 2), и! судьи управляют, который даст родительским судьям для объекта.
  • .Net Memory Profiler - это - очень полезный инструмент при выполнении в интерактивном режиме, но он также содержит опцию загрузиться из файла дампа. Это дает довольно интуитивный способ отследить посредством использования памяти. Легко стоящий цены в размере 250 долларов США, но у них также есть 14-дневная оценка.
3
ответ дан 1 December 2019 в 05:02
поделиться

WinDBG является прежде всего Win32/Отладчик ядра. Таким образом, можно хотеть попробовать один из управляемых отладчиков, как mDBG. Но я раньше делал поддержку Отладки.NET MSFT, и мне никогда не было нужно ничто как этот для поиска и устранения неисправностей утечек памяти.

2
ответ дан 1 December 2019 в 05:02
поделиться

Эй Roger, Надо надеяться, Ваша утечка памяти разрешена к настоящему времени.:-)

Я сначала был бы уверен, что это - "утечка управляемой памяти". Этим я подразумеваю, что то, когда Вы смотрите на Монитор производительности, противостоит.NET, которую Память CLR-> # Байты во всей "куче" увеличивает на том же уровне как Процесс-> Частный счетчик Байтов для того же процесса. Если это, то можно использовать методы, описанные выше.

Если это не, у Вас может быть собственная утечка, которая является результатом выполнения управляемого кода. Наиболее распространенные, которые я имею, видят, связан с блоками.NET, загружаемыми в процессе, и не разгружен. Это похоже на собственную утечку памяти в Perfmon.

Я предложил бы, чтобы Вы попытались работать, Правило Утечки в DebugDiagand видят то, что отчет использования памяти показывает просачивающимися стеками вызовов.

Вот другой большой ресурс на предмете: у Меня есть утечка памяти!!! Что я делаю? (определение, "где")

Спасибо, Aaron

0
ответ дан 1 December 2019 в 05:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: