feat: Updates serialization to use MMF (considerable memory savings) (#1841)

### Summary
Updates the serialization strategy to use `MemoryMappedFile` instead of thick buffers. This has the benefit of being on-par with the current implementation (based on hardware/OS), however won't incur the double-memory issue.

> [!Important]
> **Developer Note**
> The `BinaryFileWriter` and `BinaryFileReader` has been removed in favor of `MemoryMapFileWriter` and `UnmanagedDataReader`
This commit is contained in:
Kamron Batman 2024-06-23 10:51:20 -07:00 • committed by GitHub
parent 3b84c8052c
commit 8ec203f387
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 1271 additions and 941 deletions

View file

@ -39,8 +39,6 @@ namespace Server.Misc
GenerateCrashReport(e);
}
World.WaitForWriteCompletion();
if (SaveBackup)
{
Backup();
@ -51,6 +49,10 @@ namespace Server.Misc
e.Close = true;
Core.Kill(true);
}
else
{
World.WaitForWriteCompletion();
}
}
private static void SendEmail(string filePath)

View file

@ -45,7 +45,7 @@
<PackageReference Include="Zstd.Binaries" Version="1.6.0" />
<PackageReference Include="ModernUO.Serialization.Annotations" Version="2.9.1" />
<PackageReference Include="ModernUO.Serialization.Generator" Version="2.10.9" />
<PackageReference Include="ModernUO.Serialization.Generator" Version="2.11.3" />
</ItemGroup>
<ItemGroup>
<AdditionalFiles Include="Migrations/*.v*.json" />