我电脑开机后物理内存几乎用光,但程序要求在物理内存中开一个6M的数组,而且不要那种用"虚拟"内存补的方式(影响速度),不知该怎么办了.
是不是要将一些不用的进程先"挂起来"腾地方给数组用啊??还请高手指点,最好给出代码.小弟新人分不多,在此先行谢过!

解决方案 »

  1.   

    直接分配内存, 如果你使用了该页的内存, 系统会使用物理内存系统的内存管理很好, 速度影响不大强制使用物理 VirtualLock, GlobalLock ...
      

  2.   

    采用win32分配内存方式,包括c/c++分配内存(new)是不可能分配真正的物理内存给你的,win32程序统一分配的是分页内存,也就是说随时有可能被换入硬盘,除非你在驱动程序里分配内存时指明非分页内存,那才会在物理内存里,不会被换到硬盘上,我建议,还是服从系统的安排吧。。这样其他程序包括你的程序会好过一点。
      

  3.   

    winxp 的堆栈只有1MB, new出来吧, 
    byte *pbytebuffer= new byte[6*1024*1024];
    int *parray = (int*)pbytebuffer;
    delete[] pbytebuffer;
      

  4.   

    看错题目了, 呵呵. 用GlobalAlloc