请问如何保证申请的内存一直在RAM中而不被交换出来呢? 比如,new一个G的内存,怎么才能避免它被交换到分页文件中呢?如果,总是被交换出来,那岂不是还不如用内存映射文件了么?是不是我只要频繁使用new出来的这块内存,它实际上就一直被保持在RAM中呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1G??楼主可真够狠了,不过操作系统有它自己的调度策略,不可能避免的……new不行啊 VirtualAlloc可以做到;不过你的程序如此设计应该会让OS'不舒服' 从目前来说,只有在内核必须使用非分页内存,因为调用内核功能的时候有时不能再产生缺页中断,否则,只能BSOD,用户层根本不需要。LZ完成 可以说明自己的需求。看有没有必要。 1.WINDOWS是按页为单位进行交换的。即将系统认为可以交换出去的页写到交换文件中。像LZ申请这么大的内存。包含太多页了。就算你使用其中一部分,也不能保证其他部分不被交换出去。2.如果你的程序长期需要1G内存,你更应该提醒你的用户,准备更好的硬件配置。这是基础,没有基础。你怎么优化都没用。如果用户只有512内存,就算你成功分配了1G内存。大部分还是被交换出去了。 你确定要1G的内存? 很难想象程序要不断的使用1G的内存像魔兽世界那些庞大的游戏也不要求一定要1G的内存。所以,感觉楼主应该看看是否有更好的设计。或者把要求说说让高手们参考参考。 当然可以提供问题是:服务器是不是一直把这份内存放在RAM中呢? 其实,我还是很想知道这个问题的.....oracle或者其他大型程序是如何保留内存的呢? 非分页根本没1G空间给你分配,就算是通过MDL锁定也会对系统造成影响 那么,请问,数据库或者其他大型服务端程序是否会使用MDL锁定内存呢?多谢! 通过SetProcessWorkingSet,然后配合VirtualLock?不知道行不行... 请教关于BCG界面库编程问题!! 如何让控件停靠在指定的位置?? 利用vc如何访问sql数据库? ocx 注册 0x80040200, 整死人! 两个有关图形处理的问题 程序中如果监测IP地址改变? 分还可以再加 用哪些api函数可以设置window系统的环境变量? 大家好,请教: unix的c程序函数, 要移植到VC上用, 怎么最方便呀, 我没有作过,很茫然 多文档多视图,内存泄露? 请问应该在什么时候对wave文件进行编解码?? 我是一位处学者,我想学习编程,请各位高手指点 求个思路(Socket的重连) Mixer控制的问题
new不行啊
2.如果你的程序长期需要1G内存,你更应该提醒你的用户,准备更好的硬件配置。这是基础,没有基础。你怎么优化都没用。如果用户只有512内存,就算你成功分配了1G内存。大部分还是被交换出去了。
像魔兽世界那些庞大的游戏也不要求一定要1G的内存。所以,感觉楼主应该看看是否有更好的设计。或者把要求说说让高手们参考参考。
问题是:服务器是不是一直把这份内存放在RAM中呢?
oracle或者其他大型程序是如何保留内存的呢?
多谢!
不知道行不行...