本站首页    管理页面    写新日志    退出


«October 2026»
日一二三四五六
123
45678910
11121314151617
18192021222324
25262728293031


公告
努力学习C#。

我的分类(专题)

日志更新

最新评论

留言板

链接


Blog信息
blog名称:Areyan's Blog
日志总数:31
评论数量:10
留言数量:-2
访问次数:140448
建立时间:2005年1月5日




[.Net]无用存储单元收集器工作小谈
软件技术

阿严 发表于 2006/5/27 11:43:30

无用存储单元收集器是因为中间语言是为处理该过程而工作的。其规则要求,第一,不能引用已有的对象,除百复制已有的引用。第二,中间语言的类型安全的语言。在这里,其含义是如果存在对对象的任何引用,该引用中就有足够的信息来确定对象的类型。 无用存储单收集机制不能和诸如未受管制的C++这样的语言一起使用,因为C++允许在类型之间使用指针自由地转换数据类型。这样,搜索代码的程序就找不到指针的值,不能获得足够的信息来确定堆的什么区域正在使用。如前氘核,IL还允许在不安全的代码中使用指针,以及在指针之间转换数据类型。但使用IL,会严格限制使用这些指针的方式,以确保在代码中使用的指针不与无用存储单元收集器的需求冲突。特别是指针不允许设置为指向引用对象。无用存储单元收集器的一个重要方面是它是不确定的。换言这,不能保证什么时候会调用无用存储单元收集器;.NET运行时决定需要它时,就可以调用它。显然,代码对内存的需求越多,无用存储单元收集器的调用次数就越多。但其次数是可以预计的。在代码中,可以使用.NET基类System.GC显式地调用无用存储单收集器,例如,可以在代码使用完大量的变量后调用它。但在大多数情况下,只需委托.NET运行时在合适的时候调用无用存储单元收集器即可。


阅读全文(2876) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.016 second(s), page refreshed 144873729 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号