Skip to content

Commit 3f8fa29

Browse files
authored
Improve MurmurHash string hash memory footprint (#5028)
* Reduce memory footprint * Fix enumerator, off by 1 error
1 parent 6f5b003 commit 3f8fa29

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

src/Akka.sln

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.Akka.AspNetCore", "
244244
EndProject
245245
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SerializationBenchmarks", "benchmark\SerializationBenchmarks\SerializationBenchmarks.csproj", "{2E4B9584-42CC-4D17-B719-9F462B16C94D}"
246246
EndProject
247-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DDataStressTest", "examples\Cluster\DData\DDataStressTest\DDataStressTest.csproj", "{44B3DDD6-6103-4E8F-8AC2-0F4BA3CF6B50}"
247+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DDataStressTest", "examples\Cluster\DData\DDataStressTest\DDataStressTest.csproj", "{44B3DDD6-6103-4E8F-8AC2-0F4BA3CF6B50}"
248248
EndProject
249249
Global
250250
GlobalSection(SolutionConfigurationPlatforms) = preSolution

src/contrib/cluster/Akka.DistributedData/ORSet.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -712,9 +712,9 @@ private ORSet<T> MergeRemoveDelta(RemoveDeltaOperation delta)
712712
{
713713
while (deleteDots.MoveNext())
714714
{
715-
var curr = deleteDots.Current;
716-
deleteDotNodes.Add(curr.Key);
717-
deleteDotsAreGreater &= (thisDot != null && (thisDot.VersionAt(curr.Key) <= curr.Value));
715+
var current = deleteDots.Current;
716+
deleteDotNodes.Add(current.Key);
717+
deleteDotsAreGreater &= (thisDot != null && (thisDot.VersionAt(current.Key) <= current.Value));
718718
}
719719
}
720720

src/core/Akka/Actor/Address.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public int Compare(Address x, Address y)
4040
if (result != 0) return result;
4141
result = string.CompareOrdinal(x.System, y.System);
4242
if (result != 0) return result;
43-
result = string.CompareOrdinal(x.Host ?? "", y.Host ?? "");
43+
result = string.CompareOrdinal(x.Host ?? string.Empty, y.Host ?? string.Empty);
4444
if (result != 0) return result;
4545
result = (x.Port ?? 0).CompareTo(y.Port ?? 0);
4646
return result;

src/core/Akka/Util/MurmurHash.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -202,20 +202,20 @@ public static int StringHash(string s)
202202
{
203203
unchecked
204204
{
205-
var sChar = s.ToCharArray();
205+
var span = s.AsSpan();
206206
var h = StartHash((uint)s.Length * StringSeed);
207207
var c = HiddenMagicA;
208208
var k = HiddenMagicB;
209209
var j = 0;
210210
while (j + 1 < s.Length)
211211
{
212-
var i = (uint)((sChar[j] << 16) + sChar[j + 1]);
212+
var i = (uint)((span[j] << 16) + span[j + 1]);
213213
h = ExtendHash(h, i, c, k);
214214
c = NextMagicA(c);
215215
k = NextMagicB(k);
216216
j += 2;
217217
}
218-
if (j < s.Length) h = ExtendHash(h, sChar[j], c, k);
218+
if (j < s.Length) h = ExtendHash(h, span[j], c, k);
219219
return (int)FinalizeHash(h);
220220
}
221221
}

0 commit comments

Comments
 (0)