簡體   English   中英

在FreeBSD下允許32位應用程序使用超過4GB的內存

[英]Allow 32-bit application use more than 4GB of ram under FreeBSD

我目前正在FreeBSD下開發一款游戲。 我正在使用clang將其編譯為32位二進制文​​件,並在64位系統(在該系統下具有32GB RAM)下運行它,但是我需要使用它來使用4GB以上的RAM,因為它僅使用4GB。
即使我運行游戲的多個實例,它也不能訪問超過4GB的RAM。

另外,我嘗試在64位系統上進行編譯,但是它具有奇怪的行為。 我有很多錯誤。

我知道Windows上的Visual Studio有一個/LARGEADDRESSAWARE選項,或者類似的選項,它使32位應用程序能夠使用更多的RAM,或者我錯了嗎?
我可以指定任何標志(例如Windows)來使我的二進制文件能夠使用更多的RAM嗎? 我已經讀過一些有關mcmodel=large (或medium )的信息,但是我不確定這是我要找的東西。
交叉編譯如何? 有誰知道我在哪里可以找到一些好的信息?
謝謝。

您只能使用32位整數尋址4GiB。 2 ^ 32 = 4294967296 = 4 * 1024 * 1024 * 1024

在32位可執行文件中,沒有超過4GiB的地址空間。 那是數學上的限制。 誠然,您可以使用交換和物理地址擴展來處理一個進程中超過4GiB的數據,但是在任何給定時間,您不能尋址超過4GiB的數據。

要使用超過4GB的RAM,您需要64位版本的FreeBSD。 這基本上意味着“ amd64”而不是“ i386”體系結構。 您可以在64位系統下運行32位二進制文​​件,這將使多個實例使用超過4GB的RAM。 顯然,一個人將無法解決更多的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM