赞 | 5 |
VIP | 620 |
好人卡 | 38 |
积分 | 69 |
经验 | 125468 |
最后登录 | 2015-7-27 |
在线时间 | 1666 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 6875
- 在线时间
- 1666 小时
- 注册时间
- 2008-10-29
- 帖子
- 6710
|
本帖最后由 后知后觉 于 2009-8-15 15:34 编辑
当一些东西失去了引用名(应该是这么叫吧- -)后就会被GC回收
你去 Cache 这个模块下看看最后的定义
def self.clear
@cache = {}
GC.start
end
@cache这个哈希表本来装了很多很多Bitmap对象
但是现在把这个哈希表清空了
这些Bitmap对象失去了引用的地方但是又占据着内存
然后就 GC.start - - 不知道有没有说错
以前在某帖里紫苏大人提到过这个- -- Window_Base.new(0,0,640,480)
- 120.times{Graphics.update}
- $sprite = Sprite.new
- $sprite.z = 999
- $sprite.bitmap = Bitmap.new(640,480)
- $sprite.bitmap.fill_rect(0,0,640,32,Color.new(0,0,255,255))
- $sp = []
- $sp[0] = $sprite
- $sprite = nil
- $sp.clear
复制代码 有些东西弄不明白会觉得很诡异 - -
如果把 120.times{Graphics.update}
放到最后来执行的话 Window对象就不会被回收- - |
|