为啥要new Image[100],存银行?

解决方案 »

  1.   

    楼主说对了,一个32K的png 开成1M的bmp很正常
      

  2.   

    要不MSDN上说用完后要释放~~~
      

  3.   

    废话,你要那么多BITMAP 又不释放。 
    当然要占内存了。
    你打开N个程序,系统不也慢。
    完全瞎搞。
      

  4.   

    其实你可以用内存管理很好的C来作作看,还有JAVA什么的。
      

  5.   

    总结贴:
    “把这张图切出1/4出来,再加载100次,还是占差不多一样的内存”又仔细的测试,这条不成立,不知当时怎么做的,抱歉。重新试了,耗费内存主要和图片的尺寸和颜色深度有关,加载个1024*1024*2M的图片一百次,耗费200多M的内存。结论是加载同样尺寸同样颜色深度的不同格式的图片,耗费内存基本一样。推测起来,图片加载后在内存里展开,这步把内存就给吃了,现在明白了“cancerser(都是混饭吃,记得要结帖)”说的“一个32K的png 开成1M的bmp很正常”中的bmp是什么意思了!
      

  6.   

    另外有没有哪位能用JAVA试一下呢
      

  7.   

    按钮事件
    {
      Image[] images = new Image[100];
      for (int i = 0; i < images.Length; i++)
      {
        images[i] = new Bitmap(@"E:\xxx.png"); //该图32KB
      }images=null;
    GC.Collect();
    }显式回收资源看看,