代码之家  ›  专栏  ›  技术社区  ›  WOPR

Int16相等性测试是否比Int32快?[复制品]

  •  0
  • WOPR  · 技术社区  · 14 年前

    可能重复:
    .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 回复  |  直到 14 年前
        1
  •  2
  •   Nicholas Knight    14 年前

    最好的办法是做一个基准,然后自己去看看。

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

        2
  •  1
  •   Jon Hanna    14 年前

    理论上,Int16将比Int32慢,因为在进行比较之前,它将被转换为Int16。

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