社区
.NET Framework
帖子详情
讨论 GC 算法。
linzsoft
2004-10-28 08:28:30
目前有一个 project 是实现一个 GC ,采用的算法是用 mark and compact。
谁有这方面材料,或者讨论一下关于mark and compact 的算法。
...全文
301
17
打赏
收藏
讨论 GC 算法。
目前有一个 project 是实现一个 GC ,采用的算法是用 mark and compact。 谁有这方面材料,或者讨论一下关于mark and compact 的算法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zengsheng
2004-12-20
打赏
举报
回复
顶
hoxide
2004-12-17
打赏
举报
回复
不错,好像有一本专门讲GC算法的书, 前几天看到过, 中文版的。
oyljerry
2004-12-16
打赏
举报
回复
学习
LSML007
2004-12-16
打赏
举报
回复
不懂了
真 厉害
linzsoft
2004-12-16
打赏
举报
回复
我先说一下心得,一天写一些,也希望大家发表自己的意见。
我们先由简单原理说起
首先要讲:垃圾回收并不是很可怕的课题,焦点应该集中在以下几个方面。
1:地址分配
内存的分配是在一个Heap中进行的,额外的我们只需要一个Heap指针。当需要进行内存分配的时候从Heap指针的位置开始检查能不能分配这个内存,如果剩余的内存不够分配,系统就触发GC回收内存里的无用空间。
2:堆栈地址
堆栈中的数据是用来记录内存地址起点的,比如如果要在内存中分配一个链表,那么链表的首地址就记录在堆栈中。如果是个数组,数组的起点一样记录在堆栈中。堆栈的作用就是记录数据结构的ROOT地址。
3:传统 Free , Dispose 和 GC 垃圾回收的区别
也许有人会问为什么采用GC以后,就不会出现以往内存泄漏的问题呢?答案是两种机制有别。
传统的 Free 叫做释放内存,就是直接将已经分配的地址释放,当然了如果每次分配之后对应的应用释放就不会产生内存泄露,但问题是有时候你不知道什么时候才能释放,另外有时候程序会在释放内存前意外退出等,这样内存的可用资源就越来越少了。GC就不同,它会自动回收内存,你不用再为释放内存而苦恼,但问题是GC调用的时候会很终端程序,直到整理了内存之后才能恢复,这样人们就不能不考虑GC的效率和触发事件的问题。
4:垃圾回收算法
我研究垃圾回收的算法是 标记压缩法,其他了解了一些 ,标记压缩法 英文是 mark and compact 。
现在java,.net的GC主要算法来源就是标记压缩法。
好了,先写这些,抛砖引玉一下,我是希望大家有兴趣一起研究一下。
ProgramInHeart
2004-12-15
打赏
举报
回复
ring..................
liuyong_lll
2004-12-15
打赏
举报
回复
ding...
linzsoft
2004-12-14
打赏
举报
回复
谢谢各位的关注,我已经实现了 GC 并且通过了模拟测试,实现的语言是ADA,如果有人感兴趣就参加讨论。
我采用的算法是双指针压缩法。
bootblack
2004-12-13
打赏
举报
回复
《程序员》2003第一期上面有个专题,讲得很详细,你可以在网上下一本,如果找不到我可以传给你。
lgg06
2004-12-13
打赏
举报
回复
呵呵,楼主厉害
conquersky
2004-12-12
打赏
举报
回复
mark 学习
nga96
2004-12-11
打赏
举报
回复
GC真的不好写,等写好了,去微软吧
linzsoft
2004-10-31
打赏
举报
回复
up
linzsoft
2004-10-30
打赏
举报
回复
谢谢
shuker(我是一只小花猪)
但这不是我想要的,有没有人能讲讲 垃圾回收的 mark and compact 是怎么具体实现的?
shuker
2004-10-28
打赏
举报
回复
http://dev.csdn.net/develop/article/23/23200.shtm
http://dev.csdn.net/develop/article/23/23201.shtm
linzsoft
2004-10-28
打赏
举报
回复
up
xiaohutushen
2004-10-28
打赏
举报
回复
up
JVM调优
1、系统全面介绍了JVM的运行原理及调优策略 2、在课程中融入面试常遇到的问题分析 3、介绍堆内存结果、
GC
算法
、常用垃圾回收器的工作原理分析
常见的
GC
算法
(Parallel/CMS/G1)
学习了
GC
算法
的相关概念之后,我们将介绍在 JVM 中这些
算法
的具体实现。首先要记住的是,大多数 JVM 都需要使用两种不同的
GC
算法
——一种用来清理年轻代,另一种用来清理老年代。 我们可以选择 JVM 内置的各种...
jvm
gc
,
gc
算法
_
GC
解释:
算法
jvm
gc
,
gc
算法
如前一篇文章中所述,HotSpot JVM中有四个可用的垃圾收集器。 它们之间有一些显着差异,但是用于完成实际工作的
算法
背后的实际概念非常相似。 在这篇简短的文章中,我将尝试解释三种基本
算法
: ...
4.
GC
算法
(实现篇) -
GC
参考手册
学习了
GC
算法
的相关概念之后, 我们将介绍在JVM中这些
算法
的具体实现。首先要记住的是, 大多数JVM都需要使用两种不同的
GC
算法
—— 一种用来清理年轻代, 另一种用来清理老年代。 我们可以选择JVM内置的各种
算法
。如果...
C#基础
GC
算法
一些积累
C#基础-
gc
算法
c++是需要程序员手动管理内存的,然而手动释放内存很容易被程序员遗漏,从而导致资源浪费或内存泄露。为解决这个问题,垃圾回收器诞生了,代替程序员自动管理内存的释放。至于
gc
算法
则是垃圾回收器...
.NET Framework
17,740
社区成员
24,334
社区内容
发帖
与我相关
我的任务
.NET Framework
.NET技术 .NET Framework
复制链接
扫一扫
分享
社区描述
.NET技术 .NET Framework
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章