Как я могу избежать огромного количества ошибок программных страниц, генерируемых моим приложением C# .NET?

Я профилирую приложение C# .NET WinForms и заметил, что оно генерирует миллионы сбоев программных страниц и продолжает расти во время работы...

Я знаю, что в.NET количество сбоев страниц, генерируемых приложением, обычно велико, но миллионы сбоев страниц кажутся слишком большими... Кажется, что приложение вызвало состояние гонки с помощью GC, возможно ли это?

Есть ли какой-то известный плохо разработанный код, который может привести к этой ситуации? Если нет в коде, есть ли какие-то скрытые настройки.NET Framework, которые могут уменьшить количество ошибок страниц?

Можно ли избежать появления все большего числа ошибок программных страниц?

1 ответ

Я действительно рекомендую оставить эту вещь в покое, если это не проблема. Если у вас есть проблемы с производительностью - попробуйте и изолируйте код, который генерирует большинство сбоев страниц - Возможно, вы где-то используете большой объем памяти.

Постарайтесь сделать ваш "небезопасный" код максимально изолированным и простым, т.е. инкапсулировать весь небезопасный код в классе или функции. Имейте в виду, что путаница.NET GC может привести к осложнениям, в основном ненужным.

Проверьте эту статью на предмет небезопасного введения (оно немного старое, но все еще актуально): http://www.codeproject.com/KB/cs/unsafe_prog.aspx

Кроме того, вы можете увеличить время сбора GC, это может помочь

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