| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | 
							- using System;
 
- using System.Globalization;
 
- using BenchmarkDotNet.Attributes;
 
- using BenchmarkDotNet.Running;
 
- using MediaBrowser.Common;
 
- namespace Jellyfin.Common.Benches
 
- {
 
-     [MemoryDiagnoser]
 
-     public class HexDecodeBenches
 
-     {
 
-         private string _data;
 
-         [Params(0, 10, 100, 1000, 10000, 1000000)]
 
-         public int N { get; set; }
 
-         [GlobalSetup]
 
-         public void GlobalSetup()
 
-         {
 
-             var bytes = new byte[N];
 
-             new Random(42).NextBytes(bytes);
 
-             _data = Hex.Encode(bytes);
 
-         }
 
-         [Benchmark]
 
-         public byte[] Decode() => Hex.Decode(_data);
 
-         [Benchmark]
 
-         public byte[] DecodeSubString() => DecodeSubString(_data);
 
-         private static byte[] DecodeSubString(string str)
 
-         {
 
-             byte[] bytes = new byte[str.Length / 2];
 
-             for (int i = 0; i < str.Length; i += 2)
 
-             {
 
-                 bytes[i / 2] = byte.Parse(
 
-                     str.Substring(i, 2),
 
-                     NumberStyles.HexNumber,
 
-                     CultureInfo.InvariantCulture);
 
-             }
 
-             return bytes;
 
-         }
 
-     }
 
- }
 
 
  |