运行时的相互联系(PE、Windows 加载器、应用程序域、程序集清单、元数据、类型、对象、线程栈、托管堆)
摘要:本文将解释 PE、Windows 加载器、应用程序域、程序集清单、元数据、类型、对象、线程栈、托管堆等,与运行时的相互关系。因此,我首先写了一个简单 Demo 用于调试,其代码如下: using System;namespace CLRTest{ public class Circle { public double Radius { get; set; } public Circle() { } public Circle(double r) { this.Radius = r; } ...
阅读全文
posted @
2012-04-01 01:19
啊T
阅读(1405)
推荐(2)
深入.NET Framework内部, 看看CLR如何创建运行时对象的
摘要:[翻译经典文章]深入.NET Framework内部, 看看CLR如何创建运行时对象的 原文: Drill Into .NET Framework Internals to See How the CLR Creates Runtime Objects 文章讨论了: SystemDomain, SharedDomain和Default Domain 对象布局和其他的内存细节 方法表布局 方法分派 文章使用的技术: .NET Framework C# 因 为公共语言运行时(CLR)即将成为在Windows上创建应用程序的主角级基础架...
阅读全文
posted @
2012-03-31 23:46
啊T
阅读(797)
推荐(2)
Memcached 结构分析
摘要:Memcached 结构分析转自http://happyiww.popo.blog.163.com/blog/static/922448320078682017946/Memcached 结构分析 Memcached是一个分布式的内存缓存库,正好自己想写个cache的模块,那么就偷偷师吧。 功能库看的是实现原理和思路,性能库看的是实现细节,memcahed是属于一个看性能的库(实现cache功能的模块很多,但是性能就有高低了)1、memcached的数据交互协议 memcached是分布式的内存缓存服务器,它是通过socket(tcp/udp/unixsock)与其他程序交换数据的,这样就需.
阅读全文
posted @
2012-03-31 14:06
啊T
阅读(440)
推荐(0)
IL 指令
摘要:名称 说明 Add 将两个值相加并将结果推送到计算堆栈上。 Add.Ovf 将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上。 Add.Ovf.Un 将两个无符号整数值相加,执行溢出检查,并且将结果推送到计算堆栈上。 And 计算两个值的按位“与”并将结果推送到计算堆栈上。 Arglist 返回指向当前方法的参数列表的非托管指针。 ...
阅读全文
posted @
2012-03-19 10:34
啊T
阅读(388)
推荐(0)
[转]在.NET程序中正确使用String类型
摘要:在实际程序中,String类型用得非常广泛,然而,由于.NET对String类型变量的独特管理方式,使用不当,会严重影响程序的性能。我们分几个方面来谈这个问题: 1、了解String数据的内存分配方式 编写一个控制台应用程序,输入以下测试代码: class Program { static void Main(string[] args) { String s = "a"; s = "abcd"; } } 使用.NET Framework 2.0 SDK提供的ildasm.exe工具查看生成的MSIL指令: 01 .method private hide
阅读全文
posted @
2012-03-19 10:25
啊T
阅读(278)
推荐(0)
IDisposable的用途
摘要:.NET中用于释放对象资源的接口是IDisposable,但是这个接口的实现还是比较有讲究的,此外还有Finalize和Close两个函数。 MSDN建议按照下面的模式实现IDisposable接口: 1publicclassFoo:IDisposable2{3publicvoidDispose()4{5Dispose(true);6GC.SuppressFinalize(this);7}89protectedvirtualvoidDispose(booldisposing)10{11if(!m_disposed)12{13if(disposing)14{15//Releasemanagedr
阅读全文
posted @
2012-03-19 01:15
啊T
阅读(764)
推荐(0)
Remoting基础,比较,应用
摘要:基础: 什么是Remoting,简而言之,我们可以将其看作是一种分布式处理方式 。从微软的产品角度来看,可以说Remoting就是DCOM的一种升级,它改善了很多功能,并极好的融合到.Net平台下。Microsoft .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。这也正是我们使用Remoting的原因。为什么呢?在Windows操作系统中,是将应用程序分离为单独的进程。这个进程形成了应用程序代码和数据周围的一道边界。如果不采用进程间通信(RPC)机制,则在一个进程中执行的代码就不能访问另一进程。这是一种操作系统对应用程序的保护机制。然而在某些情况下,我们
阅读全文
posted @
2012-02-02 17:41
啊T
阅读(317)
推荐(0)