浏览代码

Multiplication is faster than bit shifting

Bond_009 5 年之前
父节点
当前提交
593107e190

+ 1 - 1
MediaBrowser.Common/Hex.cs

@@ -81,7 +81,7 @@ namespace MediaBrowser.Common
                     break; // Unreachable
                 }
 
-                bytes[j] = (byte)((a << 4) | b);
+                bytes[j] = (byte)((a * 16) | b);
             }
 
             return bytes;

+ 4 - 1
benches/Jellyfin.Common.Benches/HexDecodeBenches.cs

@@ -9,7 +9,7 @@ namespace Jellyfin.Common.Benches
     [MemoryDiagnoser]
     public class HexDecodeBenches
     {
-        [Params(0, 10, 100, 1000, 10000, 1000000)]
+        [Params(/*0,*/ 10, 100, 1000, 10000, 1000000)]
         public int N { get; set; }
 
         private string data;
@@ -40,6 +40,9 @@ namespace Jellyfin.Common.Benches
         public byte[] Decode() => Hex.Decode(data);
 
         [Benchmark]
+        public byte[] Decode2() => Hex.Decode2(data);
+
+        //[Benchmark]
         public byte[] DecodeSubString() => DecodeSubString(data);
     }
 }

+ 1 - 1
benches/Jellyfin.Common.Benches/Program.cs

@@ -7,7 +7,7 @@ namespace Jellyfin.Common.Benches
     {
         public static void Main(string[] args)
         {
-            _ = BenchmarkRunner.Run<HexEncodeBenches>();
+            //_ = BenchmarkRunner.Run<HexEncodeBenches>();
             _ = BenchmarkRunner.Run<HexDecodeBenches>();
         }
     }