jzebedee / deltaq

Fast and portable delta encoding for .NET in 100% safe, managed code.
Other
40 stars 13 forks source link

Use intrinsic ILog2 implementation when available #11

Closed jzebedee closed 2 years ago

jzebedee commented 2 years ago

This also bumps DQ.SS.LDSS version to v2.1.0

jzebedee commented 2 years ago

BenchmarkDotNet=v0.13.1, OS=Windows 10.0.22000
Intel Core i7-8650U CPU 1.90GHz (Kaby Lake R), 1 CPU, 8 logical and 4 physical cores
.NET SDK=6.0.200-preview.21617.4
  [Host]     : .NET 6.0.1 (6.0.121.56705), X64 RyuJIT
  Job-SAMSBM : .NET 6.0.1 (6.0.121.56705), X64 RyuJIT

RunStrategy=Throughput  
Method i Mean Error StdDev Median Ratio RatioSD BranchInstructions/Op BranchMispredictions/Op
tr_ilg 48000 8.640 ns 0.3332 ns 0.9771 ns 8.447 ns 1.00 0.00 14 0
Log2 48000 8.922 ns 0.2992 ns 0.8680 ns 8.818 ns 1.04 0.12 7 0
Log2BitOps 48000 6.134 ns 0.1989 ns 0.5674 ns 5.941 ns 0.72 0.09 4 0
MathLog2 48000 20.900 ns 0.4669 ns 1.2051 ns 20.715 ns 2.47 0.34 13 0
MathFLog2 48000 37.169 ns 0.9640 ns 2.7502 ns 36.115 ns 4.37 0.55 21 0
MathILogB 48000 13.127 ns 0.3297 ns 0.9406 ns 12.772 ns 1.54 0.18 16 0
MathFILogB 48000 12.275 ns 0.2889 ns 0.7610 ns 12.080 ns 1.45 0.19 16 0