我想運行這個巨大的C++項目,在內存中使用高達8.3 GB的內存。我可以在某些情況下運行此程序嗎?還是不可能?C++上的內存分配限制
回答
這很好。你只需要在64位架構上,並確保有足夠的交換空間+物理內存可用
這真的取決於。如果程序需要始終具有全部8.3 GB的內存(working size),則可能需要在計算機中安裝類似數量的內存。
現在假設您有4 GB的RAM。在這種情況下,由於使用了swap(爲了擴大虛擬內存大小,內存交換進入和退出的硬盤區域),您將最有可能執行該程序。但是,即使它實際上可以工作,但由於trashing,它可能運行非常緩慢(達不到真正可用的程度)。另一方面,如果您的程序處理8.3 GB的數據,但它在較小的數據塊中處理,這意味着所有數據都不在內存中。然後,你不需要在你的電腦上安裝如此大量的RAM。
由於奧利查爾斯沃思剛提過,您將需要一個64位的系統(包括硬件和OS)
或者,至少,一個系統
PAE能力,如果你想在你的系統
安裝超過4 GB的RAM 。
PAE不會幫你:即使操作系統可以使用更多,每個程序仍然限制在4GB的內存中。 – Yexo
@Yexo是的,你是對的。在這種情況下,由於OP似乎要求單個應用程序(過程),所以PAE將毫無用處。我相應地解決了我的答案。 – betabandido
是的,這是可能的。您需要處於64位環境中,當然可以使用RAM。您可能仍然無法一次分配超過4GB的連續地址空間。不過,您可能需要以更小的塊來分配它。
- 1. 限制skflow中的GPU內存分配
- 2. 限制犀牛的內存分配javascript
- 3. 動態內存分配的限制
- 4. C:分配限制
- 5. 如何限制Kubernetes上每個節點的可分配內存?
- 6. 內存分配C++
- 7. 內存分配,C++
- 8. C內存分配
- 9. C++分配內存
- 10. 內存分配C
- 11. 內存分配問題後,增加內存限制
- 12. C++內存分配在C
- 13. C中的內存分配
- 14. C++中的內存分配
- 15. C++中的內存分配
- 16. Enum如何在C上分配內存?
- 17. 動態內存分配在C++上的動態分配內存中
- 18. C++內存分配 - 分配子類到
- 19. 內存泄漏在C /內存分配++
- 20. 核心數據存儲限制,緩存限制,iPhone上的內存限制
- 21. C內存分配錯誤
- 22. C函數分配內存
- 23. C++可變內存分配
- 24. 內存分配在C
- 25. C++內存分配問題
- 26. C++:內存分配器
- 27. 高級C內存分配
- 28. C++分配內存一類
- 29. C++分配內存缺點?
- 30. C:分配內存混亂
這是一個令人困惑的問題。如果你知道它使用8.3GB,那麼你必須知道它運行。 –
不..我已經計算出它應該使用多少內存。如果我運行它,它說不好的分配,所以我必須以某種方式擴展內存限制。 –
然後你並不知道程序使用什麼 - 但是你想讓程序運行的數據集的大小。 –