Использование памяти процесса включает (может называться VirtualMemory):
- PrivateMemmory: выделен для процесса и не может использоваться другими процессами.
- SharedMemory: среда выполнения или третья связанная библиотека.
- CommitedMemory [или PagedMemory]: сопоставлено с жестким диском. (готов к использованию)
- ReservedMemory: только объявлено (не существует и без адреса).
Вот мое понимание:
Virtual Memory = PrivateMemmory + SharedMemory + CommitedMemory + ReservedMemory;
WorkSet Memory = PrivateMemmory + SharedMemory + CommitedMemory;
Free Memory = 'Virtual Memory' - 'WorkSet Memory';
Я вычисляю общий объем используемой памяти процесса (не включая зарезервированный), написанный на c # Слева - VMMap, а справа - VS Monitor.
Общий объем памяти процесса составляет около 5 ГБ, а зарезервированная память составляет около 4 ГБ в VMMap, и VS Monitor показывает, что VirtualMemorySize64 составляет около 5 ГБ, я запутался, как я могу получить общий объем используемой памяти. в VMMap есть 4 ГБ зарезервированной памяти, как я могу получить зарезервированную память с помощью класса .net Process.
Я установил значение TotalUsageMemory с кодом ниже, это правильно?
Int64 TotalUsageMemory = proc.WorkingSet64 + proc.PagedMemorySize64;