windows 內存分配的極限?

請問 64GB 的內存,在只執行一個程序且不影響操作系統正常運行的情況下,這個程序最大可使用的內存是多大?是否存在一個公式可以計算出這個最大內存?


如果是64位程序的話,應該可以佔滿所有物理內存+虛擬內存(預設值是跟內存一樣大)的可用的空閑空間。


Memory Address Limits:

  • User mode:

x86: 2G / 3G (with IMAGE_FILE_LARGE_ADDRESS_AWARE and 4GT)

32bit on x64: 2G / 4G (with IMAGE_FILE_LARGE_ADDRESS_AWARE

x64: 8TB

IA64: 7TB

  • Kernel mode:

x86: 2G / 1-2G (with 4GT)

x64: 8TB (Windows 6.2-) / 128TB(Windows 6.3+)

IA64: 8TB

But you still cannot bypass the limitation of the system specification. For example: Windows 10 Enterprise can only support 2TB memory on x64.


操作系統的設計會影響能用多大內存。

x64頁表設計能用512*512gb,但是按一些說法第一個pml4的offset會被忽略(?),intel的手冊上我沒找到出處,如果有人知道麻煩告知


# python 測試單個進程能使用的最大內存

sl = []

i = 0

# some magic 1024 - overhead of string object

fill_size = 1024

if sys.version.startswith("2.7"):

fill_size = 1003

if sys.version.startswith("3"):

fill_size = 497

print(fill_size)

MiB = 0

while True:

s = str(i).zfill(fill_size)

sl.append(s)

if i == 0:

try:

sys.stderr.write("size of one string %d
" % (sys.getsizeof(s)))

except AttributeError:

pass

i += 1

if i % 1024 == 0:

MiB += 1

if MiB % 25 == 0:

sys.stderr.write("%d [MiB]
" % (MiB))

https://stackoverflow.com/questions/4285185/upper-memory-limit


推薦閱讀:

該內存不能為「read/written」的錯誤提示是否存在翻譯不嚴謹,比較「該內存無法被讀取/寫入」?
如何徹底刪除魯大師?
如何評價Windows 10 創意者更新的 「Dolby Atmos for headphones」?
一直用的OS X,轉到Windows以後卡的要死怎麼辦?
一個對點滑鼠深惡痛絕的計算機學生有什麼出路?

TAG:MicrosoftWindows | 編程 | 內存管理 |