#c# #.net #memory
#c# #.net #память
Вопрос:
Мое приложение основано на документах, и использование памяти для каждого документа в определенных сценариях довольно велико. Я хочу продолжать проверять использование памяти и показывать предупреждение пользователю о закрытии некоторых документов, когда доступная память заканчивается.
Каков наилучший способ сделать это?
Комментарии:
1. Хороший вопрос, однако я, вероятно, не стал бы утруждать себя внедрением функции «открыто слишком много документов», поскольку многие пользователи автоматически закроют / повторно откроют ваше приложение / документы, если обнаружат, что приложение становится медленным и не отвечает. В качестве альтернативы я бы, вероятно, реализовал это, подсчитав размер / # открытых документов.
Ответ №1:
Используйте счетчик производительности памяти .NET.
Комментарии:
1. Согласно статье, эти счетчики сообщают информацию о GC. Разве GC не заботится только об управляемой памяти?
2. Да, GC беспокоится об управляемой памяти. Учитывая, что вопрос был о . В СЕТИ это не так уж и странно. Существуют другие счетчики, которые отслеживают другие типы памяти: msdn.microsoft.com/en-us/library/windows/desktop / … и вы можете получить доступ к тем, кто использует те же классы в .NET
Ответ №2:
Обратитесь к этой хорошей статье MSDN об использовании памяти в .net
Ответ №3:
В итоге я использовал System.Diagnostics.Process.VirtualMemorySize64
. Я не знаю, лучший ли это или наиболее точный способ сделать это, но он служит моей цели.