同樣,64位平臺理論上最多可以支持2**64,即16EB。在這裏,無論操作系統的存儲容量是512MB還是2GB,都不會產生重大影響。
但是,您的硬件可能僅限於44到56位(大多數當前系統是48位),44位只有256TB。
您的操作系統可能會進壹步限制事情的發展。IIRC,最早的64位linux內核只使用了40位(因為當時沒有硬件使用更多),只有1TB。
最後,在Windows上,如果您使用的是“基本”或“入門”版本,Windows 8家庭基礎版可能會限制為8GB。這是唯壹可能影響您的文件。
然而,與後來的32位情況不同,在2018中,幾乎沒有人的物理RAM超過他們的操作系統。許多人在內存超過4GB的機器上運行32位Windows(或64位Windows上的32位Python),但在64位系統中加載內存超過1TB的40位有限操作系統幾乎是不可能的。
因此,無論您有多少RAM,您都應該能夠將其大部分用於mmap。
有時,您希望mmap是壹個實際上不能放入RAM的文件。然後,您將依賴於操作系統的頁面交換,這肯定比具有較小窗口的文件映射效率低,但它可能足夠高效並且可能簡單得多。
在這種情況下,它可能在您的系統上工作,但是如果您不知道比您告訴我們的更多的信息,則無法確定。最簡單的答案(像Python壹樣)是EAFP:嘗試壹下並準備好處理失敗的異常(通過編程或讀取堆棧跟蹤並搜索堆棧溢出來找到解決方案)