如何让VC++6.0给我开个5M的数组???解决的答案加到150!

来源:百度知道 编辑:UC知道 时间:2024/06/03 16:10:05
我电脑开机后的物理内存已经用完,但程序要求新开的数组最好还是在物理内存中供我的程序使用,不要那种带"虚拟"内存的数组,(运算太慢),也就是说可不可以用种方法把内存中暂时不用的进程挂起来,腾出5M来开个数组??VC++6.0的.

求高手指路了!!!
zhupf - 魔法师 五级 和 youyuwanti :能否具体些说明你们的方法啊?比如zhupf 的答案这一句是怎么用啊请给出具体代码好吗???

应用层的都使用的是分页内存,——都是有可能被交换到硬盘缓冲的。
如果你想你的内存不被交换,必须要申请非分页内存。
不过MFC好像没有提供申请非分页内存的方法噢,除非你写驱动程序,驻留在核心态,才有权限使用非分页内存的。

利用优先级让这个程序独占CPU
SetProcessWorkingSetSize
把其他进程使用的内存往虚拟内存挪,
这样估计有足够的物理内存了吧.

建议使用 malloc出一个堆的空间,然后自己格式话为数组的结构,如果需要共享次数组的话,就放到一个公共的区域。
如果malloc失败的话,就尝试者自己取修改PTE,PDE这样从物理内存中凑出一些吧,把无用的部分换到磁盘上

- -内存5M都没有?没想法,不过可以用定义函数的方式解决