2010-08-10 21 views
0

可能重複:
.NET Integer vs Int16?Int16的平等測試是否比Int32更快?

這是對大量的測試速度在一個緊湊的循環?

static bool IsEqual(Int16 a, Int16 b) 
{ 
    return a==b; 
} 
static bool IsEqual(Int32 a, Int32 b) 
{ 
    return a==b; 
} 
static bool IsEqual(Int64 a, Int64 b) 
{ 
    return a==b; 
} 

還是沒有區別?

+0

下面的鏈接可能重複。然而,這將幫助你 - http://stackoverflow.com/questions/129023/net-integer-vs-int16 – 2010-08-10 11:32:11

回答

2

最好的事情就是對它進行基準測試並親自體驗。

通常,在32位體系結構中,應該沒有差別,或32應該更快(即使支持更小的整數,本機字大小通常是最快的)。同上64/64。

1

從理論上講,int16將比int32慢,因爲在進行比較之前,int16將被轉換爲該值。

實際上,這是一個小小的差異開始,它很可能會在很大程度上進行優化。因此,如果自然是int16,那麼不要僅僅爲了這個理論速度優勢而使用int32。但是,如果它只是「自然」整數,那麼使用int32而不是int16,因爲int32是.NET中的「正常」整數大小。