Starcraft-2

為 PC 遊戲啟用“大地址感知”功能真的有益嗎?

  • April 19, 2021

我遇到了一個建議,可以為遊戲執行檔自定義啟用“大地址感知”功能,據我所知,這基本上允許 32 位遊戲訪問 64 位記憶體空間。

http://www.techpowerup.com/forums/threads/large-address-aware.112556/

http://www.pso-world.com/forums/showthread.php?t=199993

這個建議是否真的有利於遊戲性能,例如星海爭霸 2?有沒有辦法預先確定哪些遊戲可能有幫助或可能沒有幫助?

獎金:

對於多人線上遊戲這樣做是否有風險,甚至可能因“作弊”而被禁止?

要在啟用 LAA 時快速測試應用程序是否穩定,您需要反向分配 Windows 記憶體,以查看應用程序是否可以處理大記憶體地址(大於 31 位的 int 值)。更改是通過 regedit iirc 完成的,但我不記得鍵/值。編輯:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"AllocationPreference" - 必須設置為自上而下分配,因此它首先分配高地址。

無論如何…如果遊戲(可能用 C++ 編寫)被最佳編碼,如果您在 exe 中啟用 LAA,它實際上不會有什麼不同,因為程序員會直接將 ram 分配到具有靜態大小的緩衝區中在編譯時足以滿足所有需求。為了在未設計為使用 LAA 的應用程序中實際擁有更多可用的帶有 LAA 標誌的 ram,程序員必須搞砸他們關於堆 RAM 使用和分配的假設。或者他們做了一些我無法想像的奇怪事情。它不像 Java 有自動堆分配,這不會影響在堆棧上完成的記憶體分配,除非他們的程序員做了一些非常奇怪的事情。

引用自:https://gaming.stackexchange.com/questions/176456