c# - 哪个是比较两位数字的最有效方法?

标签 c# .net performance binary comparison

我需要比较很多整数值是否相等。

哪种方法最快?

一个)

int a1 = 12345;
int a2 = 54321;
if(a1 == a2)
{
   //do something.
}

B)

int a1 = 12345;
int a2 = 54321;
if( (a1 ^ a2) == 0 )
{
   //do something.
}

最佳答案

我怀疑 first 实际上更快。比较两个整数的相等性并不是一种不常见的操作,所以我想它得到了很好的支持:) 然而,更重要的是,它可读性大大提高

在我看来,比较整数的相等性似乎不太可能成为你的瓶颈。如果你真的觉得是这样,那么一定要尽可能在现实情况下对你所得到的进行基准测试,然后尝试各种更改(可能是异或,可能是减法等)并重新测量。但是,在花时间远离最明显、简单、可读的代码之前,请确保您确实有需要修复的东西。

关于c# - 哪个是比较两位数字的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5701248/

相关文章:

c# - 使用.NET Moq 时如何转发到另一个对象?

performance - Metal Shaders 中的函数调用很昂贵吗?

C# 响应式(Reactive)扩展 - 内存管理和 Distinct 运算符

c# - struct类型的深拷贝在 “Using……”的block中是不是也被dispose了?

c# - 列出所有容器和 blob

java - 在 Java 或 .NET 中包装 C++ API

java - Android 上 Java lib 和 C++ dll 之间的性能

ruby-on-rails - Rails 应用的性能分解

c# - 尝试取消订阅该 EventHandler 的变量时取消订阅原始事件

c# - 应该如何实现 DbContext 和与 DB 的连接来处理负载测试?