2014-08-31 78 views
0

像写在主题中,我不知道是否有可能增加我的C程序在OSX系统上的堆空间,在mac上为c程序增加堆空间 - 应用程序空间?

当我运行我的程序时,在某个时候,我得到了窗口的消息“你的系统已经用尽了应用程序内存“。

我已经用C写我的计划,我只是编译它没有任何具体的参数:

gcc my_program.c -o my_program_exec 

然后在某个时候停止,我得到的错误信息。我的数据集非常庞大,我想要生成几个具有约40 000行和70 000列的int矩阵。

+0

假设一个4字节的'int',那大约有11.2GB的内存。没有理智的操作系统会给你一个块的内存,除非e。 G。你正在运行一台拥有几百内存的大型服务器。 – 2014-08-31 18:31:46

+0

这可能有助于... 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

回答

0

40k * 70k *每个int的4个字节远远高于11 GiBytes的内存。
除非你有高端服务器,否则你没有那么多的物理内存。幸运的是,你可以在现代操作系统上使用分页,所以,只要你有一个64位操作系统,你应该能够设置一个大的交换分区(或任何OSX使用的),而不用担心物理内存(除了性能。 ..)。

+0

_ “除非你有高端服务器,否则你没有那么多物理内存” - Pff我的MacBook标配16 GB。 – 2014-08-31 18:55:08