• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

无用单元的收集

发布: 2007-6-21 21:57 | 作者: 刘彦清  | 来源: yesky  | 查看: 15次 | 进入软件测试论坛讨论

领测软件测试网

下一页 1 2 3 

   
  CLR中的无用单元收集程序监控一个软件的资源,一旦系统中的可用资源减少到了一个极限,发现无用的对象后就会消灭它。无用单元的收集带来的一个好处是你无需担心最常见的循环调用问题,在一个循环调用中,子对象调用父对象,而父对象又调用了子对象。

在一个调用调度系统中,循环调用可能使任一对象都不能被释放或消灭,而无用单元收集程序则可以发现这种循环调用,并消灭它,这也意味着释放最近对一个对象的调用无需立即消灭这个对象。

  无用单元收集带来的后果是:我们无须再依赖于一个类的Terminate事件。事实上,如果线程被阻塞了,Terminate事件也不可能得到执行,这也就是所谓的不确定性终止,与它相对的是由COM提供的确定性终止。确定性终止的缺乏和由于无用单元收集而引起的对内存单元的重新调度和紧凑在互联网上的新闻组中引起了热烈的讨论。我认为这些限制会引起你的不快,因为你已经习惯了确定性终止,也许你并不依赖于Terminate事件而认为这无关紧要。无用单元收集程序并非是万能的,在使用时仍然会有许多限制。

  从引用计数到无用单元收集只是说明Visual Studio.NET的基础架构不再是COM的一部分。在VB.NET中,你仍然可以使用ActiveX服务器、ActiveX控制等COM对象,但必须通过适当的"wrapper"才行。提到"wrapper"这个词,就可能意味着性能上的折扣和执行上的差异。如果要移植一个使用了大量的COM对象的软件,就需要进行很好的测试和规划,甚至重新设计部分代码才能确保移植成功。坦率地说,你会遇上挫折,还记得把VBX向OCX移植的恶梦吗?

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网