关于Ruby的GC
2015-07-27 15:59
274 查看
对比Ruby和Python的GC
关于Ruby2.0的GC
Ruby的GC基于标记回收算法 。
RubyVM在启动之初就会新建好好大量的对象,放在一个空闲对象链表中(freelist),待代码新建对象时就可以很方便的取用。
这样被取用的对象就被从freelist里移除,freelist将越来越短。
最终freelist耗尽时,GC被触发。
这就是标记回收算法。
关于Ruby2.0的GC
Ruby的GC基于标记回收算法 。
RubyVM在启动之初就会新建好好大量的对象,放在一个空闲对象链表中(freelist),待代码新建对象时就可以很方便的取用。
这样被取用的对象就被从freelist里移除,freelist将越来越短。
最终freelist耗尽时,GC被触发。
首先,Ruby将停止程序的执行,Ruby使用了”停止这个世界,然后回收垃圾”的方式。 然后,Ruby会扫描所有的指向对象和值的指针或引用。同样,Ruby也会迭代虚拟机内部使用的指针。 它会标记每一个指针所能到达的对象。
接下来,Ruby将清理没有使用的,垃圾对象,将它们链入空闲对象链表(free list) 当多有的freelist里的对象都被标记为in use,ruby则会另外申请一整块heap memory。
这就是标记回收算法。
相关文章推荐
- selinium的ruby版在windows8下安装
- Ruby 中的类和对象
- ruby中数组的常用函数
- Ruby
- 手把手教学:巧用Core Data和RubyMotion开发iOS应用
- Ruby 程序员最要好的朋友
- 安装ruby环境
- Installing MySQL Ruby Gem checking for mysql_ssl_set()... no
- ruby bundle信任goagent证书
- ruby on rails调试技术
- ruby2.2.2在msvc2010上编译
- ruby环境sass编译中文出现Syntax error: Invalid GBK character错误解决方法
- ruby 环境
- Ruby中 respond_to? 和 send 的用法
- Ruby 中的inject方法
- Ruby Array
- Ruby中的chop和chomp
- 理解 Ruby Symbol (Ruby中的符号)
- [Error]Can't install RMagick 2.13.4. You must have ImageMagick 6.4.9 or later.
- 【编程语言】【Ruby】语言介绍