как получить правильную физическую память и виртуальную память - PullRequest
1 голос
/ 23 декабря 2010

Я использую этот Windows API, http://msdn.microsoft.com/en-us/library/aa366589(v=vs.85).aspx GlobalMemoryStatusEx, чтобы получить информацию о памяти. Общая физическая память моего компьютера составляет 4096 МБ, почему программа показывает 3.XG Виртуальная память моего компьютера составляет 3063 МБ, но я использую программу, которая показывает 2047 МБ.Как разработать эту проблему

спасибо

Ответы [ 2 ]

0 голосов
/ 23 декабря 2010

Если вы работаете с 32-битной версией Windows, то это предел самих окон.См. Эту страницу Microsoft для подробностей .По умолчанию вы сможете получить доступ к 2 ГБ ОЗУ только в одном процессе.В Visual Studio есть переключатель компилятора, который даст вам доступ к 3 ГБ.Это ключ / LARGEADDRESSAWARE.Помимо этого вам просто нужно обновить до 64-битной операционной системы.

Кстати, основная причина, по которой вы автоматически не получаете 4 ГБ адресного пространства, заключается в том, что его часть зарезервирована для операционной системы.Эти системные вызовы и ссылки на ресурсы операционной системы должны где-то жить.

0 голосов
/ 23 декабря 2010

Разве другие программы не используют вашу систему?Я подозреваю, что память, которую вы «пропускаете», связана с самой ОС и другими запущенными вами программами.Посмотрите, изменяет ли открытая куча других приложений размер виртуальной памяти, который может видеть ваша программа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...