我正在運行一個程序來構建一個非常大的對象,並且我將通過爲此進程分配超過2GB的內存而獲益匪淺。提前致謝。如何爲Windows中的進程分配超過2GB的內存?
回答
您似乎指的是32位Windows中虛擬內存的2GB限制。您無法在32位系統上繞過此限制。
您可以在boot.ini配置中使用/ 3gb開關,並標記進程「大地址空間感知」......但嘗試在32位操作系統的內存中加載2GB並不容易用於本機代碼或託管代碼的任務。 –
@alexei機器的管理員可以做/ 3gb,但應用程序不能 –
您不能分配一個大於2GB的單個對象(或一個數組),這是一個CLR限制。你必須把這個物體分成幾塊。
所以假設我有一個3GB的對象,我分裂成6個0.5GB的對象,是不是會超過2GB的進程限制?再次感謝。 – abw333
而且,TBH,如果你試圖管理一個這樣大小的對象,你需要做一些反思。 –
@Schroedingers Cat想要爲某些算法分配巨大對象是完全合理的。 –
.NET Framework 4.5允許在64位平臺上創建大於2GB的數組。此功能默認情況下未啓用,必須使用gcAllowVeryLargeObjects元素通過配置文件啓用。
http://msdn.microsoft.com/en-us/library/hh285054(v=vs.110).aspx
這是唯一的方法嗎?如果我不需要,我真的不想切換到VS2012。 –
- 1. 分配的超過2GB的64位二進制
- 2. 在32位.NET進程中分配超過1,000 MB的內存
- 3. 導致2GB內存分配的NSDate
- 4. 如何增加超過2GB的PHP內存限制?
- 5. 進程的內存分配
- 6. 在linux中爲進程分配內存
- 7. Windows 2Gb內存限制
- 8. 如何將分配的內存分解爲多個區域並分配進程?
- 9. 內存分配 - 15 GB如何等於2GB?
- 10. 如何殺死匹配超過30分鐘的grep的進程?
- 11. 進程內存v.s. AppDomain內存分配
- 12. ImageMagick使用超過2GB的內存來轉換PDF文件
- 13. Malloc分配內存超過RAM
- 14. dma_alloc_coherent()內存分配失敗,超過4MB
- 15. 內存分配過程
- 16. 在32位Linux內核上使用C++在堆上分配超過2GB的內存
- 17. 分配給進程的虛擬內存
- 18. 奇怪的malloc行爲不會允許在64位進程上分配更多的2GB內存
- 19. 無法在從其他進程分配的進程0內存中寫入超過4個字符
- 20. 如何在x64 windows7上爲tomcat分配超過1 GB的內存
- 21. 進程從內核分配內存塊
- 22. 分割爲2GB時的linux內存映射:2GB而不是1GB:3GB
- 23. Java中使用超過所分配的內存
- 24. 如何訪問分配給不同進程的內存?
- 25. Erlang:如何限制分配給進程的內存
- 26. 你如何預先分配內存到solaris的進程?
- 27. 在內存分配分析過程中內存分配不斷增加
- 28. 當嘗試分配X內存量時,sqlplus超出進程內存
- 29. 試用C - 爲什麼我不能分配和使用2GB的內存?
- 30. 內存分配和進程的內存使用
即使它可能使你的程序更容易編寫,分配2GB內存+塊肯定會導致您的用戶較差的應用程序。 – JaredPar
你如何構建一個2GB的對象? – Gabe
@gabe一個數組是最明顯的例子 –