Int16相等测试比Int32快吗?

时间:2010-08-10 11:29:19

标签: c# performance

  

可能重复:
  .NET Integer vs Int16?

对于紧密循环中的大量测试,哪个更快?

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;
}

或没有区别?

2 个答案:

答案 0 :(得分:2)

最好的办法是对它进行基准测试并亲自看看。

通常,在32位体系结构上,应该没有差别,或者32应该更快(原生字大小通常是最快的,即使支持更小的整数)。同上64/64。

答案 1 :(得分:1)

理论上,int16将比int32慢,因为在进行比较之前它会被强制转换为。

在实践中,这是一个很小的差异,并且它很可能在很大程度上被优化。因此,如果某些东西自然是int16,那么就不要仅仅为了理论速度优势而使用int32。但是,如果它只是“自然”积分,那么在int16上使用int32,因为int32是.NET中的“正常”整数大小。