摘要: 一直在园子里都是瞻仰各位大牛,没有留下过一点痕迹。借用糗百中的一句话“光看不发掉人品啊”。从劳动节到现在菜鸟我一直跟智齿作斗争。来上面攒点人品,顺便培养写东西这种文艺修养。哈哈哈哈。。。垃圾是怎么产生的呢? 首先要明确一个问题,什么事垃圾呢?个人窃以为就是:不再被需求的资源。之所以这么说,是觉得这个“垃圾资源”当初也是为某个程序立下汗马功劳的,在后面也会讲到他自己不能决定自己的命运,人家需要就创建他,不需要就摧毁它。 在面向对象的环境中,每个类型都代表一种供程序使用的资源。比如文件、内存、网络、DB。这些资源也是经过一个或短或长的人生之后沦落为“废物”的。 资源的产生:调用IL指令ne... 阅读全文
posted @ 2012-05-22 15:57 天添 阅读(330) 评论(2) 推荐(1) 编辑
摘要: 当系统加载一个CLR的进程,进程里面可能有多个线程,这时候系统会给这个进程创建一个大小为1M的线程栈。这个线程栈用来存放方法调用的实参,和方法内部定义的局部变量。下图展示了一个线程栈的栈内存。线程栈的存储是从高位内存地址向地位内存地址构建的。现在假设线程栈执行的代码要调用M1方法。在这个很简单的方法中,应该包含一些初始化这个方法的“序幕”代码,和一些“尾声”代码,负责在方法调用完成之后对方法进行清理。然后才返回给这个方法的调用者。M1方法调用开始时,M1的序幕代码在线程栈上分配局部变量name的内存。如下图然后M1调用M2方法,将name作为一个实参来传递。这造成name局部变量中的地址... 阅读全文
posted @ 2012-05-22 15:50 天添 阅读(1706) 评论(5) 推荐(3) 编辑