diff options
| author | Andrey Sukharev <SukharevAndrey@users.noreply.github.com> | 2023-01-19 01:25:16 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-18 22:25:16 +0000 |
| commit | ae4324032a48ee08a808354673f47536e76759d0 (patch) | |
| tree | 90c7c6aceb14d095761a257a41e7dc6882d30d73 /ARMeilleure | |
| parent | f449895e6d8af90f727de6590fd6120038c73986 (diff) | |
Optimize string memory usage. Use Spans and StringBuilders where possible (#3933)
* Optimize string memory usage. Use ReadOnlySpan<char> and StringBuilder where possible.
* Fix copypaste error
* Code generator review fixes
* Use if statement instead of switch
* Code style fixes
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
* Another code style fix
* Styling fix
Co-authored-by: Mary-nyan <thog@protonmail.com>
* Styling fix
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
Co-authored-by: Mary-nyan <thog@protonmail.com>
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
Diffstat (limited to 'ARMeilleure')
| -rw-r--r-- | ARMeilleure/Decoders/OpCodeTable.cs | 12 | ||||
| -rw-r--r-- | ARMeilleure/Translation/PTC/Ptc.cs | 8 | ||||
| -rw-r--r-- | ARMeilleure/Translation/PTC/PtcProfiler.cs | 8 |
3 files changed, 14 insertions, 14 deletions
diff --git a/ARMeilleure/Decoders/OpCodeTable.cs b/ARMeilleure/Decoders/OpCodeTable.cs index 3f24986c..54abb141 100644 --- a/ARMeilleure/Decoders/OpCodeTable.cs +++ b/ARMeilleure/Decoders/OpCodeTable.cs @@ -1339,7 +1339,7 @@ namespace ARMeilleure.Decoders private static void SetT32(string encoding, InstName name, InstEmitter emitter, MakeOp makeOp) { - string reversedEncoding = encoding.Substring(16) + encoding.Substring(0, 16); + string reversedEncoding = $"{encoding.AsSpan(16)}{encoding.AsSpan(0, 16)}"; MakeOp reversedMakeOp = (inst, address, opCode) => makeOp(inst, address, (int)BitOperations.RotateRight((uint)opCode, 16)); @@ -1353,7 +1353,7 @@ namespace ARMeilleure.Decoders string thumbEncoding = encoding; if (thumbEncoding.StartsWith("<<<<")) { - thumbEncoding = "1110" + thumbEncoding.Substring(4); + thumbEncoding = $"1110{thumbEncoding.AsSpan(4)}"; } SetT32(thumbEncoding, name, emitter, makeOpT32); } @@ -1365,19 +1365,19 @@ namespace ARMeilleure.Decoders string thumbEncoding = encoding; if (thumbEncoding.StartsWith("11110100")) { - thumbEncoding = "11111001" + encoding.Substring(8); + thumbEncoding = $"11111001{encoding.AsSpan(8)}"; } else if (thumbEncoding.StartsWith("1111001x")) { - thumbEncoding = "111x1111" + encoding.Substring(8); + thumbEncoding = $"111x1111{encoding.AsSpan(8)}"; } else if (thumbEncoding.StartsWith("11110010")) { - thumbEncoding = "11101111" + encoding.Substring(8); + thumbEncoding = $"11101111{encoding.AsSpan(8)}"; } else if (thumbEncoding.StartsWith("11110011")) { - thumbEncoding = "11111111" + encoding.Substring(8); + thumbEncoding = $"11111111{encoding.AsSpan(8)}"; } else { diff --git a/ARMeilleure/Translation/PTC/Ptc.cs b/ARMeilleure/Translation/PTC/Ptc.cs index e5b4623d..e5e0b2a5 100644 --- a/ARMeilleure/Translation/PTC/Ptc.cs +++ b/ARMeilleure/Translation/PTC/Ptc.cs @@ -183,8 +183,8 @@ namespace ARMeilleure.Translation.PTC private void PreLoad() { - string fileNameActual = string.Concat(CachePathActual, ".cache"); - string fileNameBackup = string.Concat(CachePathBackup, ".cache"); + string fileNameActual = $"{CachePathActual}.cache"; + string fileNameBackup = $"{CachePathBackup}.cache"; FileInfo fileInfoActual = new FileInfo(fileNameActual); FileInfo fileInfoBackup = new FileInfo(fileNameBackup); @@ -400,8 +400,8 @@ namespace ARMeilleure.Translation.PTC try { - string fileNameActual = string.Concat(CachePathActual, ".cache"); - string fileNameBackup = string.Concat(CachePathBackup, ".cache"); + string fileNameActual = $"{CachePathActual}.cache"; + string fileNameBackup = $"{CachePathBackup}.cache"; FileInfo fileInfoActual = new FileInfo(fileNameActual); diff --git a/ARMeilleure/Translation/PTC/PtcProfiler.cs b/ARMeilleure/Translation/PTC/PtcProfiler.cs index 0d554628..030ccff5 100644 --- a/ARMeilleure/Translation/PTC/PtcProfiler.cs +++ b/ARMeilleure/Translation/PTC/PtcProfiler.cs @@ -125,8 +125,8 @@ namespace ARMeilleure.Translation.PTC { _lastHash = default; - string fileNameActual = string.Concat(_ptc.CachePathActual, ".info"); - string fileNameBackup = string.Concat(_ptc.CachePathBackup, ".info"); + string fileNameActual = $"{_ptc.CachePathActual}.info"; + string fileNameBackup = $"{_ptc.CachePathBackup}.info"; FileInfo fileInfoActual = new FileInfo(fileNameActual); FileInfo fileInfoBackup = new FileInfo(fileNameBackup); @@ -246,8 +246,8 @@ namespace ARMeilleure.Translation.PTC { _waitEvent.Reset(); - string fileNameActual = string.Concat(_ptc.CachePathActual, ".info"); - string fileNameBackup = string.Concat(_ptc.CachePathBackup, ".info"); + string fileNameActual = $"{_ptc.CachePathActual}.info"; + string fileNameBackup = $"{_ptc.CachePathBackup}.info"; FileInfo fileInfoActual = new FileInfo(fileNameActual); |
