一、引用类型性能
FCL(Framework)中的大多数类型都是引用类型,引用类型老是在托管堆中分配的,C#的new操做符会返回对象的内存地址,也就是指对象数据的内存地址。在使用引用类型时,存在如下性能问题,这是咱们在开发中必需要注意的:对象
a、内存必须从托管堆上分配(也就是说每new一个对象,会占用内存,对象过多就会致使内存占用)内存
b、 堆上分配的每一个对象都有一些额外的成员,这些成员必须初始化开发
c、对象中的其余字节(为字段而设),老是设为0垃圾回收
d、从托管堆中每分配一个对象,可能强制执行一次垃圾回收操做引用
因此当咱们的应用程序中都是引用类型时,应用程序的性能会显著降低。float
二、值类型程序
上面介绍了引用类型,知道了当从托管堆中每分配一个对象时,都会形成应用程序性能的降低。设想当使用Int32类型初始化一个数字6或者使用float初始化一个浮点数6.6的时候,都进行一次内存的分配,那么应用程序的性能会受到严重的影响.为了提供应用程序的性能,CLR提供了名为"值类型"的轻量级类型.数据