Skip to content

Latest commit

 

History

History
26 lines (24 loc) · 1.54 KB

DivisibleByTwo.md

File metadata and controls

26 lines (24 loc) · 1.54 KB

Divisible by two

Should you use modulo? Should you use logical and? Is this gonna be JITted anyway? See DivisibleByTwo.cs for implementation details (shockinlgy nothing ... surprising).

BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1889 (21H2)
Intel Core i7-7820HQ CPU 2.90GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
.NET SDK=6.0.303
  [Host]     : .NET 6.0.8 (6.0.822.36306), X64 RyuJIT
  DefaultJob : .NET 6.0.8 (6.0.822.36306), X64 RyuJIT
Method Number Mean Error StdDev Median
LogicalAnd 256 0.0000 ns 0.0000 ns 0.0000 ns 0.0000 ns
Modulo 1024 0.0009 ns 0.0026 ns 0.0024 ns 0.0000 ns
Modulo 2147483647 0.0009 ns 0.0038 ns 0.0032 ns 0.0000 ns
Modulo 0 0.0019 ns 0.0040 ns 0.0037 ns 0.0000 ns
LogicalAnd 1024 0.0037 ns 0.0133 ns 0.0125 ns 0.0000 ns
LogicalAnd -2147483648 0.0072 ns 0.0122 ns 0.0108 ns 0.0007 ns
LogicalAnd 0 0.0076 ns 0.0135 ns 0.0139 ns 0.0000 ns
LogicalAnd 2147483647 0.0109 ns 0.0162 ns 0.0151 ns 0.0024 ns
Modulo 256 0.0124 ns 0.0238 ns 0.0223 ns 0.0000 ns
Modulo 2 0.0196 ns 0.0220 ns 0.0195 ns 0.0173 ns
Modulo -2147483648 0.0259 ns 0.0225 ns 0.0211 ns 0.0263 ns
LogicalAnd 2 0.0861 ns 0.0362 ns 0.0948 ns 0.0429 ns