linux系统2g内存,linux下分配大于2g内存的问题(c++)

linux下分配大于2g内存的问题(c++)

答案:5  信息版本:手机版

解决时间 2020-07-26 16:35

已解决

2020-07-25 20:51

机器是64位系统linux,但好像最大只能分配2G内存,寻求一个解决方案,需要方便排序。有人说可以用list或者静态数组,请牛人指教一二,谢谢

谢谢1楼,不过我现在不需要省内存,只想要一个可行的存储方式实现内存充分利用,有没有好的方法?

谢谢4楼, 静态数组也不行么?

谢谢6楼,64位linux也做不到一个进程大于2G么?

最佳答案

2020-07-25 22:12

一个进程只能申请2G.

使用2~3个进程来解决.每个进程申请1.5G,再制做一个总控进程,操纵这几块内存,需要一点点进程间通信的手段.

=====

你这里光说几楼不好用的,这里的楼层排序会随着别人修改答案而改变的.

是否能管理大于2G的内存,不光与系统是否是64位有关,还与编译器有关.我认为现在不是在做作业,而是在解决生产问题,所以不要纠缠在问题本身上,而是集中精力先用已经确定的技术先解决掉,把合同款先拿到手.在生产环境中不能依靠想像力,最好依靠确定的技术或经验.

全部回答

1楼

2020-07-26 03:04

linux系统,可以在没有图形的环境下工作。不同发行版,具体需求不同。有的甚至能在256m下工作。如果是前些年的老版本,甚至可以在更低的内存下运行。不过,那得需要你有一定经验才行。否则,一个从来没见过命令行的新手,一旦遇到纯指令操作的系统,麻烦可不是一点。建议你在网上找那种在图形环境下内存需求不超过512m的版本。

2楼

2020-07-26 01:35

一次性申请连续空间有点难,尝试修改bootloader,在内核自检的时候跳过一段内存,然后自己再初始化使用,这算是个办法。。。

3楼

2020-07-26 00:35

大量数据排序,一般先把它们分组。

例如:分 n=20 组。

(1)打开数据文件,

读入一个数 y,

y_max = y;y_main = y;

接着读,if (y > y_max) y_max = y;

if (y < y_min) y_min = y;

直到EOF.

(2) 从小到大分组

dy = (y_max - y_min) / n;

例如,-200,-100,0, 10, 200 。。。

(3) rewind(数据文件);

读文件,

数值落入最小组的存入数组

直到EOF

排队

输出。

rewind(数据文件);

读文件,

数值落入第二组的存入数组

直到EOF

排队

输出

。。。。。。

数值落入第k组的存入数组

....

用此法,排队速度快,省内存。

不得的。不要白费心了。

4楼

2020-07-25 23:22

大量数据排序,一般先把它们分组。

例如:分 n=20 组。

(1)打开数据文件,

读入一个数 y,

y_max = y;y_main = y;

接着读,if (y > y_max) y_max = y;

if (y < y_min) y_min = y;

直到EOF.

(2) 从小到大分组

dy = (y_max - y_min) / n;

例如,-200,-100,0, 10, 200 。。。

(3) rewind(数据文件);

读文件,

数值落入最小组的存入数组

直到EOF

排队

输出。

rewind(数据文件);

读文件,

数值落入第二组的存入数组

直到EOF

排队

输出

。。。。。。

数值落入第k组的存入数组

....

用此法,排队速度快,省内存。

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

大家都在看

推荐资讯

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值