Предотвратите Сборку "мусора".NET в течение короткого промежутка времени

У меня есть высокопроизводительное приложение, которое обрабатывает очень большой объем данных. Это получает, анализируя и отбрасывая огромные объемы информации за очень короткие промежутки времени. Это вызывает изрядное количество объектной маслобойки, которую я в настоящее время пытаюсь оптимизировать, но она также вызывает вторичную проблему. Когда удары Сборки "мусора" в нем могут вызвать некоторые длительные задержки, поскольку это очищает вещи (длинным, я значу 10-е для 100 с миллисекунд). 99% времени, это приемлемо, но для кратких окон времени приблизительно 1-2 минуты длиной я должен быть абсолютно уверен, что Сборка "мусора" не вызывает задержку. Я знаю, когда эти промежутки времени произойдут заранее, и мне просто нужен способ удостовериться, что Сборки "мусора" не происходит в течение этого периода. Приложение записано в C# с помощью.NET 4.0 Платформы и использует и управляемый и неуправляемый код, если это имеет значение.

Мои вопросы;

  1. Действительно ли возможно кратко приостановить Сборку "мусора" для всей программы?
  2. Действительно ли возможно использовать Систему. GC.Collect () для принуждения сборки "мусора" перед окном, в котором я нуждаюсь свободный от Сборки "мусора" и если я делаю, сколько времени я буду бесплатной Сборкой "мусора"?
  3. Какой совет люди имеют при уменьшении потребности в Сборке "мусора" в целом?

Отметьте - эта система довольно сложна с большим количеством различных компонентов. Я надеюсь постараться не идти в подход, где я должен реализовать пользовательский интерфейс IDisposable на каждом классе программы.

61
задан 15 May 2011 в 05:29

0 ответов

Другие вопросы по тегам:

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