各位大虾:
   小弟搞了一个绘图程序,其中有一项是可以往视图里面插入图片,插入的图像我用了一个vector来管理,但是当我的插入的图片非常多的时候,比如说是100张,一个图片1M大的话,那么我的程序就占内存太多了,那么如何减少内存的占用同时又能保证往里插入很多图片?
   我查看了一下word,发现往word里面插入很多图片,它占的内存基本上不变,这是怎么回事哪?那位大虾帮帮忙?谢谢啦!

解决方案 »

  1.   

    可以考虑保存每个图片的存放地址,而不是存放图片,然后需要绘制的时候再绘制出来。
    你用Word的时候,如果拖动页面很快,那个图片要过一会才显示出来的,说明不是在内存里面绘制好的。
      

  2.   

    word使用了设计模式中的FlyWeight(享元)模式,就是在一个对象中,如果它包含很多很占资源的元素(子对象),则只有当这些子对象需要使用的时候才实例化它们(把它们载入内存)。
    你用vector是做不到这一点的,因为当你插入到vector的时候,就已经载入内存了;你可以考虑
    使用FlyWeight(享元)模式,在某个对象中保存图片对象的引用,当真正需要使用到图片的时候再载入内存。