2011年7月20日

关于.NET内存中的堆和栈

摘要: 今天中午李建忠老师发了一条关于class性能好还是struct性能好(换言之、堆性能好?还是栈性能好?)的话题微博,引发包括老赵这些牛人级的开发人员的热烈讨论。作为.NET开发背景的人,一般都会认为struct的性能会比class更好些,因为在应用程序的内存中,struct是保持在堆栈上,而class是保存在托管堆上,而栈的性能比堆的性能要高,为什么呢,我是基于下面几点的考虑(注:这里讨论的是.NET应用程序内存中的堆和栈,不是数据结构中的堆和栈): 1).NET中栈的空间是内存自维护的,即用完即清除; 2).NET中堆的空间的需要垃圾回收器回收释放。而垃圾回收器启动回收工作的时候,会暂停你. 阅读全文

posted @ 2011-07-20 22:25 边写边唱 阅读(3660) 评论(24) 推荐(6) 编辑

导航