From ef4857fa9fce0c3453bf39612bdc429fafc1328d Mon Sep 17 00:00:00 2001 From: Kurt Date: Mon, 10 May 2021 16:07:25 -0700 Subject: [PATCH] Improve perf of byte->hexstring parse just use a stringbuilder --- PKHeX.Core/Util/Util.cs | 6 ++++-- Tests/PKHeX.Core.Tests/Util/ConvertUtilTests.cs | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/PKHeX.Core/Util/Util.cs b/PKHeX.Core/Util/Util.cs index c87e43906..6f7f77dc8 100644 --- a/PKHeX.Core/Util/Util.cs +++ b/PKHeX.Core/Util/Util.cs @@ -136,8 +136,10 @@ public static byte[] GetBytesFromHexString(string seed) public static string GetHexStringFromBytes(byte[] data, int offset, int length) { data = data.Slice(offset, length); - Array.Reverse(data); - return BitConverter.ToString(data).Replace("-", string.Empty); + var sb = new StringBuilder(data.Length * 2); + for (int i = data.Length - 1; i >= 0; i--) + sb.AppendFormat("{0:x2}", data[i]); + return sb.ToString(); } private static bool IsNum(char c) => (uint)(c - '0') <= 9; diff --git a/Tests/PKHeX.Core.Tests/Util/ConvertUtilTests.cs b/Tests/PKHeX.Core.Tests/Util/ConvertUtilTests.cs index f1a935054..142538fb1 100644 --- a/Tests/PKHeX.Core.Tests/Util/ConvertUtilTests.cs +++ b/Tests/PKHeX.Core.Tests/Util/ConvertUtilTests.cs @@ -43,6 +43,9 @@ public void CheckConvertHexString(string v, uint result) var convert = Core.Util.GetBytesFromHexString(v); var u32 = BitConverter.ToUInt32(convert); u32.Should().Be(result); + + var remake = Core.Util.GetHexStringFromBytes(convert, 0, convert.Length); + remake.Should().Be(v); } } }