Microsoft programmers are not very strong on math:
8 GB = 8 589 934 592
7.88 GB = 8 461 085 573
TotalPhysicalMemory = 8 458 973 184
8 GB - TotalPhysicalMemory = 8589934592 - 8458973184 = 130 961 408
What we see here is that the Microsoft programmer that issued the 7.88 GB
figure rounded it up, thereby creating about 130 MB of memory that
simply does not exist, because this is a fraction of a very large number,
the gigabyte.
It would have been more correct to round it down, which would be safer
for calculations and better mathematics, or even to add more decimal places
which would have reduced the rounding error.
You could run the command systeminfo | findstr Memory
to get even more numbers.
The
TotalPhysicalMemory
description
says:
Total size of physical memory. Be aware that, under some circumstances, this property may not return an accurate value for the physical memory. For example, it is not accurate if the BIOS is using some of the physical memory. For an accurate value, use the Capacity
property in Win32_PhysicalMemory
instead.
So you may use wmic, but it's really unclear what you are getting.
At least, TotalPhysicalMemory
seems to be the smallest number among all those
that I found, so it might be safe to use.