查看: 2234|回复: 10

[已经解决] 关于GC

  [复制链接]

清纯红

梦石
0
星屑
61
在线时间
65 小时
注册时间
2009-7-23
回帖
955

贵宾

发表于 2009-8-15 00:31:32 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 赤点 于 2009-8-15 21:31 编辑

垃圾回收拿来干嘛的
谁能讲解一下,谢了
GC
GC 是用来控制 Ruby 解释器的「垃圾回收(Garbage Collection)」的模块。

模块方法GC.disable
禁止使用垃圾回收。

返回此前的禁用状态(若此前已被禁用,则返回 true,若此前 GC 仍在工作,则返回 false)。

GC.enable
允许使用垃圾回收。

返回此前的禁用状态(若此前已被禁用,则返回 true,若此前 GC 仍在工作,则返回 false)。

GC.start
启动垃圾回收。

返回 nil。
就算痛也要做,宅必备,宅人的必备网站

清纯红

梦石
0
星屑
61
在线时间
65 小时
注册时间
2009-7-23
回帖
955

贵宾

 楼主| 发表于 2009-8-15 09:12:37 | 显示全部楼层
顶&
回复

使用道具 举报

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
回帖
1260

贵宾

发表于 2009-8-15 09:51:57 | 显示全部楼层
自动释放不再使用的对象。
-.-
回复

使用道具 举报

梦石
0
星屑
50
在线时间
276 小时
注册时间
2009-6-6
回帖
1693

贵宾

发表于 2009-8-15 09:59:19 | 显示全部楼层
很好~~~咱看不懂~~~~~
欢迎大家加入AGM大军
群号:82696728
AGM区:http://rpg.blue/forum-77-1.html
玛姐我爱你~玛莉妲大人鞭挞我吧!
回复

使用道具 举报

梦石
0
星屑
50
在线时间
192 小时
注册时间
2007-7-14
回帖
2662
发表于 2009-8-15 10:31:37 | 显示全部楼层
垃圾回收机制:当需要分配的内存空间不再使用的时候,调用垃圾回收机制来回收内存空间。
回复

使用道具 举报

梦石
0
星屑
45
在线时间
47 小时
注册时间
2009-6-1
回帖
112
发表于 2009-8-15 12:03:52 | 显示全部楼层
這個對加快遊戲速度有幫助嗎?

GC看來好像是把沒用的東西先丟掉

不曉得這樣會不會加快遊戲速度。
回复

使用道具 举报

清纯红

梦石
0
星屑
61
在线时间
65 小时
注册时间
2009-7-23
回帖
955

贵宾

 楼主| 发表于 2009-8-15 12:07:49 | 显示全部楼层
只是节约内存用,能加快一点点吧
就算痛也要做,宅必备,宅人的必备网站
回复

使用道具 举报

梦石
0
星屑
7095
在线时间
1666 小时
注册时间
2008-10-29
回帖
6612

贵宾

发表于 2009-8-15 14:48:46 | 显示全部楼层
本帖最后由 后知后觉 于 2009-8-15 15:34 编辑

当一些东西失去了引用名(应该是这么叫吧- -)后就会被GC回收

你去 Cache 这个模块下看看最后的定义

    def self.clear
      @cache = {}
      GC.start
    end
@cache这个哈希表本来装了很多很多Bitmap对象
但是现在把这个哈希表清空了
这些Bitmap对象失去了引用的地方但是又占据着内存
然后就 GC.start - -  不知道有没有说错
以前在某帖里紫苏大人提到过这个- -
  1. Window_Base.new(0,0,640,480)
  2. 120.times{Graphics.update}
  3. $sprite = Sprite.new
  4. $sprite.z = 999
  5. $sprite.bitmap = Bitmap.new(640,480)
  6. $sprite.bitmap.fill_rect(0,0,640,32,Color.new(0,0,255,255))
  7. $sp = []
  8. $sp[0] = $sprite
  9. $sprite = nil
  10. $sp.clear
复制代码
有些东西弄不明白会觉得很诡异 - -
如果把 120.times{Graphics.update}
放到最后来执行的话 Window对象就不会被回收- -











你知道得太多了

回复

使用道具 举报

孤独守望

梦石
0
星屑
3144
在线时间
1535 小时
注册时间
2006-10-16
回帖
4223

开拓者贵宾

发表于 2009-8-15 17:02:49 | 显示全部楼层
本帖最后由 IamI 于 2009-8-15 17:04 编辑

8# 后知后觉
感觉有GC的应该是基于句柄……引用在GC的作用下应该也会崩溃吧 - -
事实上,GC默认开启,如果脚本编辑合适,GC只会吃闲饭。

在一个Scene上画一个Window,但是不dispose之,在回到地图时仍然可以看见这个窗口。不切换屏幕,在约1分钟以后Window仍然会消失。这就是GC的作用。
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复

使用道具 举报

清纯红

梦石
0
星屑
61
在线时间
65 小时
注册时间
2009-7-23
回帖
955

贵宾

 楼主| 发表于 2009-8-15 18:36:20 | 显示全部楼层
Ruby有引用?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部