摘要:
上一篇简单的叙说了一下不同类型内存分配的问题,以及如何在源代码上控制内存的布局,以及值类型分配的问题。本篇首先讨论对象的结构,使用Visual Studio + SOS探索一下MethodTable和EEClass可以提供给我们的信息。提供一个感性的认识,为后面从源代码分析提供基础。 阅读全文
随笔档案-2009年08月
揭示同步块索引(下):总结
2009-08-18 15:57 by 横刀天笑, 3887 阅读, 收藏, 编辑
摘要:
前面,我用两篇文章详细的讨论了同步块索引在lock和GetHashCode所起的作用。不过两篇文章是分开来讨论的。那可能有人会问,如果我有一个object,它既作为lock的lockHelper对象那同步块索引该是个什么样子的呢?本篇文章将对同步块索引的用途和结构做一个概述性的总结。 阅读全文
揭示同步块索引(中):如何获得对象的HashCode
2009-08-13 22:44 by 横刀天笑, 6737 阅读, 收藏, 编辑
摘要:
不起眼的同步块索引(SyncBlockIndex),占据着对象头部4个字节,几乎没有什么文档记录,但却起着举足轻重的作用。同步块索引到底是如何完成多重的职责?什么,HashCode也与这个同步块索引有关?风马牛不相及的两个东东怎么碰到一起了呢? 阅读全文
.NET中的那些受特别对待的类型(CriticalFinalizerObject)
2009-08-09 21:32 by 横刀天笑, 3798 阅读, 收藏, 编辑
摘要:
股票里面有个ST股,就是Special Treatment的意思。就是对那些财务出现异常的上市公司,特别处理,在股票名字前面挂个ST,警示投资者注意风险。
这是题外话,今天我们要谈的是,在.NET的世界里,也有这么一些类型啊,受特别的对待(世界的不公平无处不在啊)。当EE碰到这些类型时,并不是像普通的类型那样去对待。我“龌龊”的给这些类型起个名字: ST Type。那到底有哪些类型呢,就我目前所知道的有......
阅读全文