2014-10-23 1 views
5

Почему Process.PrivateMemorySize64 /1024 не соответствует той памяти диспетчера задач Windows (Private Working Set)?Почему Process.PrivateMemorySize64/1024 не соответствует той памяти диспетчера задач Windows (Private Working Set)?

Похоже, что разница в большой (~ 30%). Кроме того, значение часто не обновляется, как диспетчер задач.

Вызов _process.Refresh() не помогает.

+0

см. Здесь (http://www.itwriting.com/dotnetmem.php). Это может помочь вам узнать о проблемах с памятью на .Net. Память, напечатанная в TaskManager, не является фактической используемой памятью вашего приложения. – HimBromBeere

+0

Это радикально разные числа, виртуальная память и физическая память. –

ответ

4

Вы смотрите на разные вещи.

Свойство PrivateMemorySize64 из класса Process является эквивалентом счетчика производительности Private Bytes. Он представляет общий объем частной памяти, выделенной для связанного процесса, который не может использоваться совместно с другими процессами. Частные байты - это не только физическая память, но и выгружаемые файлы и т. Д.

На другом конце Частный рабочий набор отслеживает подмножество подмножества частных байтов, которое представляет собой только физическую память, которую использует процесс, и может Нельзя делиться другими процессами.

1

PrivateMemorySize64 представляет вашу личную память, а не только частный рабочий набор, который представляет собой объем частной памяти, который в настоящее время не выгружается на диск.

Если вы хотите узнать общий размер вашего процесса, вы должны использовать свойство VirtualMemorySize64. Он учитывает всю память, выделенную вашим процессом, независимо от того, загружается ли эта память или в ОЗУ. Это полезно, например, для того, чтобы узнать, приближается ли ваш 32-разрядный процесс к 2 Гбайтам виртуального размера (адресное пространство процесса), которое обычно является пределом для 32-битного процесса (если только не использовать параметр/3GB на 32-битной Windows или приложение работает на 64-битной версии Windows и имеет большой адрес).