dinghao

记录成长点滴

 

2011年4月13日

Silverlight内存泄露(四)解决内存泄露

摘要: 定位泄露内存的对象很容易,但是找出引起泄露的原因并不容易,因为从GC到目标对象(内存泄露对象)的路径不只一条,找出哪条路径引起了内存泄露是非常烦人的工作,大部分情况只能凭借自己的经验。 一般我们都不会关注内存问题,当内存成为问题的时候,程序可能都开发完成了,这时候对象图会引入第三方库、.net 框架、本公司的其他库,需要梳理GC到目标对象的所有路径,并测试每一条路径,确认哪条引起了内存泄露。在测... 阅读全文

posted @ 2011-04-13 23:33 思无邪 阅读(1904) 评论(4) 推荐(1) 编辑

Silverlight内存泄露(二)检测内存泄露

摘要: 理解GC 理解了GC如果工作,.net程序中的许多奇怪问题都容易理解了。虽然.net一直声称.net程序不需要显式的内存管理,GC会在后台释放不需要的对象,开发者不需要管理对象,但是.net 程序仍然需要关注内存泄露和性能问题。尤其Silverlight、WPF的内存泄露比其他.net程序严重的多。 GC解决了非托管程序中常出现的内存泄露问题,比如开发者忘记释放自己创建的资源。既然GC可以释放内存,为什么还会发生内存泄露呢?原因只有一个,GC与开发者在对象是否生存(”live”)、是否正被使用上有不同的认识。开发者认为对象无用了,可以被GC回收,但GC却认为对象正被使用,内存不会被回收。因此必 阅读全文

posted @ 2011-04-13 17:32 思无邪 阅读(4403) 评论(10) 推荐(3) 编辑

从火狐放弃依据特性更新版本说起

摘要: 火狐也跟随google的步伐,加快了浏览器版本的升级。在过去一年Chrome以疯狂的速度更新了多个版本,火狐只更新了一个。 火狐放弃依据特性发布版本,是否意味着google的版本发布方式更优秀呢? 未必如此,最初软件功能不完善,存在许多要增加的特性,此时采用特性版本发布方式非常适合,随着新版本的发布,特性列表中存在的特性多是,非关键特性或实现困难的特性。如果到了此时仍然沿用特性版本发布方式就不合时宜了,采用类似google的版本发布方式也是不错的选择。 扩展开来,事物的每个发展阶段都有针对此阶段的最优解决方案,而不存在针对这个事物的最优方案,也更不会存在对每个事物都是最优的方案。软件架构也如. 阅读全文

posted @ 2011-04-13 09:05 思无邪 阅读(1987) 评论(3) 推荐(2) 编辑

导航