ComputerInfo.TotalPhysicalMemory() отображает 17 ГБ ОЗУ вместо 16.C#

Место общения программистов C#
Ответить
Anonymous
 ComputerInfo.TotalPhysicalMemory() отображает 17 ГБ ОЗУ вместо 16.

Сообщение Anonymous »

Я работал над некоторым приложением Winforms C# и подумал о добавлении функции, которая показывает использование ОЗУ процессом/общий объем физической ОЗУ на вашем компьютере.
Я искал некоторые встроенные методы Microsoft, которые помогут мне в этом, и обнаружил, что общий объем ОЗУ на моем компьютере можно вернуть с помощью: Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory.
/>
В документации указано, что это свойство содержит общий объем физической памяти компьютера.
Более подробную информацию можно прочитать здесь: документация ComputerInfo.TotalPhysicalMemory.
Вот как я это реализовал:

Код: Выделить всё

ulong ram = new Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory;
Console.WriteLine("total: " + ram/1000000000);
измеряется в байтах, а мне нужен был результат в ГБ, поэтому я разделил его на 10^9.
Однако меня смущает результат:

Код: Выделить всё

total: 17
(...) и я почти уверен, что ни я (при попытке получить это свойство), ни Microsoft не допустили никакой ошибки :), потому что я знаю, что мой компьютер имеет физическую память 16 ГБ.
Мой вопрос: почему он отображает 17? Речь идет о том, что производители оперативной памяти лишь приблизительно оценивают объем оперативной памяти, но всегда можно иметь больше/меньше 16 ГБ? Или я что-то упускаю?

Подробнее здесь: https://stackoverflow.com/questions/749 ... tead-of-16
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»