Automate Everything

关于自动化相关的任何东西,包括自动化测试,Visual Studio宏, 自动化安装部署等
16
Jul
2008

.Net 内存泄露检查以及垃圾回收机制

现在在做Memory Leak的测试,需要覆盖到Native的C++ Code和Managed C# Code,下边是学习笔记和一些自己的想法…

Native的C++代码来说,内存泄露就是New的对象没有delete,概念相对Managed来说要简单很多,而且很好理解,可以用Memory Validator来做,这个工具会很明显的给出什么地方可能会有内存泄露,并给出Call Stack,我们可以看到在哪个对象New了以后没有delete。我们通过在整个solution中搜索这个变量,去看对象有没有被Return、赋值或者delete,如果都没有的话,那说明这个地方是一个内存泄露。

对Managed的C#代码来说,内存泄露的概念就跟Native的C++概念不同。因为所有的New所分配的内存是在托管堆上分配的,所以不存在一般意义上的内存泄露。对Managed Code来说,内存泄露就是指一些没有用的对象被reference,导致GC不能回收,从而造成这部分内存相对泄露(这个是我自己的概念^_^)。我们可以通过.Net Memory Validator和.NET Memory Profiler 3.1来跟踪内存的使用情况,从而分析内存泄露。

两个例子:

1. 比如一个全局的ArrayList里边New了很多的对象,这个ArrayList只在一个函数里边使用,那么在这个函数调用结束的时候,就必须给ArrayList赋值为null。否则这个全集的ArrayList只能等到程序结束的时候才能被释放,在这个期间因为ArrayList的引用,导致ArrayList里边的对象不能被释放回收。

2. 比如一个SolidBrush对对象,没有包括在using语句中,那个这个对象就不会自动被调用despose接口,导致内存泄露。

把这篇文章分享到: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • bodytext
  • Google
  • Facebook
  • Furl
请给这篇文章打分:
太差了有点差马马虎虎了很不错非常好 ( 您是第一个打分的人)
Loading ... Loading ...

20
Jun
2008

Status Update:)

Update一下Status吧,好久没写了都。

上次搬家,PSP丢了,Prs505的Reader也不舍得买,现在晚上就是打会儿魔兽世界,才13级了…

工作还算顺利,现在做Memory Leak的测试,用Memory Validator做,貌似很好用。对Native的Code支持还是不错的,那个.Net的版本到现在也没看明白到底用来validate什么东西。.Net还有Memory Leak的问题吗?而且好像.Net的那个对被测程序影响非常大,简直惨不忍睹,AUT慢的都不是一点点,直接没法用…

再坚持一周,就放长假了,一周的假期,也可以再重温一下以前暑假的感觉:)

把这篇文章分享到: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • bodytext
  • Google
  • Facebook
  • Furl
请给这篇文章打分:
太差了有点差马马虎虎了很不错非常好 ( 您是第一个打分的人)
Loading ... Loading ...

30
May
2008

周末搬家…

都说上海房子没有涨价,但是据同学说想买房子根本就排不到号。虽然不知道房价是怎么回事,但是知道房租是实实在在的涨了很多。

房东说要涨400块钱,只好搬家了。跑了几个‘我爱我家’,他们手里只有一两套一室的房子,还都是一楼,而且房型非常奇怪,想不通…

还得感谢网络啊,找到了现在的房东,在大街上接头交了房租,也签了合同,就等周末搬过去了,不过是6楼,我的书怎么办啊…

把这篇文章分享到: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • bodytext
  • Google
  • Facebook
  • Furl
请给这篇文章打分:
太差了有点差马马虎虎了很不错非常好 ( 您是第一个打分的人)
Loading ... Loading ...

08
May
2008

你是否知道- 你可以在Object Browser中直接添加References

转自:

Did you know… You can add references to your solution directly from the Object Browser - #210

一般我们添加Reference都是通过打开Sulution Explorer,在Reference文件夹或者Project节点上点击右键,选择添加引用,然后在添加引用的对话框里边选择引用。

让我们看看其它的方法怎么做: 在Object Browser的工具栏上有一个按钮叫做‘Add To References’

 ObjectBrowserAddReference_6

然后你可以看到’Accessibility’已经被添加到了工程中

ObjectBrowserAddReference2_2

把这篇文章分享到: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • bodytext
  • Google
  • Facebook
  • Furl
请给这篇文章打分:
太差了有点差马马虎虎了很不错非常好 ( 您是第一个打分的人)
Loading ... Loading ...

05
May
2008

上海郊区采草莓(行程安排)

昨天旁边一个Team的同事Team Building去采草莓了,拿回来的草莓很不错,个头很大,而且还比较好吃:),据说是在暖棚里边采的,而且要15块钱一斤,不过可以偷吃,这些是不收费的,嘿嘿

准备周末带老婆去大吃一顿:),先把路线和计划定下:

时 间: 周六早上9点出发  (据网上说因为暖棚比较热,所以上午10:00~11:00比较适合)
地  点: 高东镇龙跃路38号
联系人: 宋亞明
手  机: 13162023733
交通:
     地铁: 6号线五洲大道站下,打车大概20元左右到
     开车: 沿五洲大道向东开右转到赵高公路,再左转上顾高公路,左转上龙跃路.共计半小时.

附:
http://bbs.yaolan.com/Thread_6914454_1.aspx
http://www.ilova.com.cn/lovanewbbs/thread-23654-1-1.html

把这篇文章分享到: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • bodytext
  • Google
  • Facebook
  • Furl
请给这篇文章打分:
太差了有点差马马虎虎了很不错非常好 ( 您是第一个打分的人)
Loading ... Loading ...

25
Apr
2008

今天又到中江路的天地软件园逛了一下

都有快两年没去了吧,当时在中软资源的时候,才呆了没几个月,就外派到紫竹去了,一呆就是一年,一年前又换到浦东的公司了,就更没有往那边去。

今天去了一下,金沙江路依然是那么堵,以前软件园边上没有盖好的楼也盖好了,咖啡厅也多了几个,KTV也有了,还有个什么娱乐城,总之没有以前那么荒凉了……

把这篇文章分享到: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • bodytext
  • Google
  • Facebook
  • Furl
请给这篇文章打分:
太差了有点差马马虎虎了很不错非常好 ( 您是第一个打分的人)
Loading ... Loading ...