我最能写了一个64位的程序(叫VLRMem),程序需要处理大量的数据,占用的内存也特别多。多达几个G。我用任务管理器查看我的程序内存占用情况:内存使用是2G,虚拟内存是5G。也就是说我的程序占用的内存被交换到硬盘上了。这样会对程序的性能产生怎样的影响?怎样解决?
  我知道关闭操作系统的虚拟内存设置,但这样会对其它的程序程序影响。有没有其它好多办法,请高手指教!! 有关提高程序性能的建议都可以发表!!

解决方案 »

  1.   

    当程序执行时需要使用某个地址的内存时,这个时候虚拟内存才会向操作系统申请内存,才会真正意义上的占用系统内存(内存和硬盘缓存).我想这个是由系统管理的,我们不需要考虑的太多吧===========================================================================
    这里虽然由OS处理,但并不是可以忽略的开销.尤其这个是G级的空间.
      

  2.   

    Why do you have to use so much memory?
      

  3.   

    to cnwolf(独狼) ( ) 信誉:100 
    ====================================
    你这种说法是不对的,每个程序运行都有自己的独立地址,然后再映射到物理地址的,不然的话哪程序间的地址冲突也太大了,那解释一下内存整理又是怎么回事呢?
      

  4.   

    看你怎么处理的应用了。比如手机号码,你是用char存储的,还是用int存储的?
    手机号11位,去掉前面的13,还剩余9位,可以用4个字节存储。
    如果用char,那么最少要占用9个字节。
    算你5000万个号码,int存储最少占用381M内存。 如果char存储就是800M内存了。另外,每秒更新几千个也不算多吧,必须实时处理吗? 缓存积攒10000个sql,字符串拼起来,一次提交给数据库,比提交10000次快很多很多很多很多倍。