像寫在主題中,我不知道是否有可能增加我的C程序在OSX系統上的堆空間,在mac上爲c程序增加堆空間 - 應用程序空間?
當我運行我的程序時,在某個時候,我得到了窗口的消息「你的系統已經用盡了應用程序內存「。
我已經用C寫我的計劃,我只是編譯它沒有任何具體的參數:
gcc my_program.c -o my_program_exec
然後在某個時候停止,我得到的錯誤信息。我的數據集非常龐大,我想要生成幾個具有約40 000行和70 000列的int矩陣。
像寫在主題中,我不知道是否有可能增加我的C程序在OSX系統上的堆空間,在mac上爲c程序增加堆空間 - 應用程序空間?
當我運行我的程序時,在某個時候,我得到了窗口的消息「你的系統已經用盡了應用程序內存「。
我已經用C寫我的計劃,我只是編譯它沒有任何具體的參數:
gcc my_program.c -o my_program_exec
然後在某個時候停止,我得到的錯誤信息。我的數據集非常龐大,我想要生成幾個具有約40 000行和70 000列的int矩陣。
40k * 70k *每個int的4個字節遠遠高於11 GiBytes的內存。
除非你有高端服務器,否則你沒有那麼多的物理內存。幸運的是,你可以在現代操作系統上使用分頁,所以,只要你有一個64位操作系統,你應該能夠設置一個大的交換分區(或任何OSX使用的),而不用擔心物理內存(除了性能。 ..)。
_ 「除非你有高端服務器,否則你沒有那麼多物理內存」 - Pff我的MacBook標配16 GB。 – 2014-08-31 18:55:08
假設一個4字節的'int',那大約有11.2GB的內存。沒有理智的操作系統會給你一個塊的內存,除非e。 G。你正在運行一臺擁有幾百內存的大型服務器。 – 2014-08-31 18:31:46
這可能有助於... https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man2/setrlimit.2.html#//apple_ref/doc/man/2/setrlimit – 2014-08-31 18:45:27