C# 引用類型和值類型

一、引用類型性能

FCL(Framework)中的大多數類型都是引用類型,引用類型老是在託管堆中分配的,C#的new操做符會返回對象的內存地址,也就是指對象數據的內存地址。在使用引用類型時,存在如下性能問題,這是咱們在開發中必需要注意的:對象

a、內存必須從託管堆上分配(也就是說每new一個對象,會佔用內存,對象過多就會致使內存佔用)內存

b、 堆上分配的每一個對象都有一些額外的成員,這些成員必須初始化開發

c、對象中的其餘字節(爲字段而設),老是設爲0垃圾回收

d、從託管堆中每分配一個對象,可能強制執行一次垃圾回收操做引用

因此當咱們的應用程序中都是引用類型時,應用程序的性能會顯著降低。float

 

二、值類型程序

上面介紹了引用類型,知道了當從託管堆中每分配一個對象時,都會形成應用程序性能的降低。設想當使用Int32類型初始化一個數字6或者使用float初始化一個浮點數6.6的時候,都進行一次內存的分配,那麼應用程序的性能會受到嚴重的影響.爲了提供應用程序的性能,CLR提供了名爲"值類型"的輕量級類型.數據

相關文章
相關標籤/搜索