基本数据结构解析之Stack & Queue
Stack:遵循后进先出原则,最后进来的第一个出去,查看详细(English), 中文参考代码 CLR/SRC/BCL/System/Stack.cs构造函数(初始化)Stack() / Stack(int initialCapacity) / Stack(ICollection col) : th...
基本数据结构解析之ArrayList
ArrayList:使用大小可按需动态增加的数组实现 IList 接口。(From MSDN)初始化, 内部默认是4的Capacity, 还是采用Object存储 1: private const int _defaultCapacity = 4; 2: private Object[] _item...
What is ArrayList.FixedSize(Argument arg)
从这里我们开始讨论的话题,牵涉到ArrayList.FixedSize用法的问题, 测试 添加/删除 是否可用, 而赋值操作是否可行 从一个测试程序开始, 思路简单,只是简单的操作,如果出现异常则输出错误消息 1: [代码]输出结果 ArrayFixedSize的算法如何呢? 其实只是给他添加了一...
广告贴- - 关于dotnet平台上的osgi实现的可能性
算是广告吗。。。前几天在园子的群组里建了个小组,OSGI IN DOTNET,来宣传下,呵呵。OSGI不知道大家是否关注,最近由于工作涉及,了解了一些,于是有了一个在DOTNET平台上实现一个OSGI的念头,代码自然是开放的。由于目前工作的原因,我自己对这个到是有了一些浅薄的积累,非常感谢赵哥(WO...
[.Net 4.0]泛型的协变,以及高阶函数对泛型的影响 Part 1
按:这文章算是上星期与装配脑袋一起讨论到的一些东西的总结。我试图用更多一点的代码把协变和反变解释得更浅显一点。大家也可以参考Ninputer同学的文章:http://www.cnblogs.com/Ninputer/archive/2008/11/22/generic_covariant.html为...
使用CorDbg进行托管调试
Cordbg是和.Net Framework,以及Windows SDK一起ship的托管代码的调试工具,相对于VS来说,它是一个比较low-level的调试工具. 本文的主要目的,就是看看Cordbg如何来进行托管调试,然后演示下其功能,看看其和其它的托管调试工具,譬如MDBG和windbg+SO...
CLR内核调试之:Malloc函数实现
自从可以动态调试SSCLI之后,发现这个玩意还真是个宝山,越玩越有意思,就像捅开一扇门,发现门后面还有一座宝山……不光CLR的内部实现细节,可以象是放电影一样呈现在眼前,Visual Studio里面的一些底层的技术,还有OS的底层技术,查看起来那是相当的便捷。 这里就说...
Build SSCLI20 under VS2008 full Document (完全手册)
以前build过几次sscli2都成功了,这次换了个新的环境,没想到出了一大堆的问题。折腾了半天,最终搞定,把解决问题的过程和方法都记录下来。首先说说build的过程中参考过的链接和资源。1. 首先就是sscli自带的文档:Building the Shared Source CLI 2.0 and...
MethodTable内存空间分配中加法运算算法解析
在分析MethodTable具体分配内存实现的时候,看到了计算MethodTable的大小,然后分配空间的算法。其中有个加法运算实现的非常赞,特地截取出来。 所有的MethodTable的分配,都是通过methodtable中的一个static方法AllocagteNewMT来实现的,该方法定义如下...
[Performance Tip]StreamReader Or File.ReadAllLines
在我们使用文件读取时,往往会看到StreamReader或者File.ReadAllLInes这样的方法,有时候我就想这两个有什么差别呢?于是写个小程序比较下 1: using System; 2: using System.Collections.Generic; 3: using System....
Windbg寻找Managed Founction参数值
问题源自一个Seminar,如何使用Windbg找到在函数调用的时候,所传递的参数的值。 当使用live Debug模式attach到一个managed Process的时候,默认情况下并不显示函数内部之间的调用,这个时候,需要在这个函数没调用之间给下一个断点。 基于对一个托管函数下断点的两种方法,...
Windbg在Managed App中设置函数断点的几种方法
本文介绍两种使用Windbg在Managed App中设置断点的方法。一种是在live Debug的时候,attach到了Process之后。另外一种是动态调试的时候,如何给几个模块的特定方法下一个断点。 使用Windbg在Native Code里面下断点是比较方便的,bp加上一个内存地址就可以做...