Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Upgrades serialization v4 (Threaded Heap Serialization) #1947

Merged
merged 6 commits into from
Sep 14, 2024

Conversation

kamronbatman
Copy link
Contributor

@kamronbatman kamronbatman commented Sep 10, 2024

Summary

  • GenericEntityPersistence is now a type of GenericPersistence. This allows developers to serialize both entities and non-entities in the same system. 🎉
  • Each SerializationThreadWorker now allocates 1MB of heap for serialization permanently. If more memory is needed, that thread will double it's memory, not to exceed increments of 64MB.
  • Several bugs with serialization introduced with the pure MMF implementation have been fixed.
  • BinaryFileReader has been added back. 🎉
  • Adds world.useMultithreadedSaves to allow disabling threaded saves.

Important

Developer Note
The split file serialization has been deprecated and is no longer used. We have effectively gone back to the same file writing we had before the pure MMF implementation.

Copy link

github-actions bot commented Sep 10, 2024

Qodana for .NET

4 new problems were found

Inspection name Severity Problems
Private field can be converted into local variable 🔶 Warning 1
Namespace does not correspond to file location ◽️ Notice 3

💡 Qodana analysis was run in the pull request mode: only the changed files were checked
☁️ View the detailed Qodana report

Detected 20 dependencies

Third-party software list

This page lists the third-party software dependencies used in ModernUO

Dependency Version Licenses
Argon2.Bindings 1.16.1 MIT
BouncyCastle.Cryptography 2.4.0 MIT
CommunityToolkit.HighPerformance 8.3.0 MIT
LibDeflate.Bindings 1.0.2.120 GPL-3.0-only
MailKit 4.7.1.1 MIT
Microsoft.Extensions.FileSystemGlobbing 8.0.0 MIT
MimeKit 4.7.1 MIT
ModernUO.CodeGeneratedEvents.Annotations 1.0.0 GPL-3.0-only
ModernUO.CodeGeneratedEvents.Generator 1.0.3.2 GPL-3.0-only
ModernUO.Serialization.Annotations 2.9.1 GPL-3.0-only
ModernUO.Serialization.Generator 2.11.3 GPL-3.0-only
Nerdbank.GitVersioning 3.6.143 MIT
PollGroup 1.5.1 BSD-3-Clause
Serilog.Sinks.Async 2.0.0 Apache-2.0
Serilog.Sinks.Console 6.0.0 Apache-2.0
Serilog 4.0.1 Apache-2.0
System.Formats.Asn1 8.0.1 MIT
System.IO.Hashing 8.0.0 MIT
System.Security.Cryptography.Pkcs 8.0.0 MIT
Zstd.Binaries 1.6.0 MIT
Contact Qodana team

Contact us at [email protected]

@kamronbatman kamronbatman force-pushed the kbatman/serialization_v4 branch 2 times, most recently from 0544997 to e777829 Compare September 12, 2024 05:51
@kamronbatman kamronbatman merged commit 465d3c8 into main Sep 14, 2024
14 checks passed
@kamronbatman kamronbatman deleted the kbatman/serialization_v4 branch September 14, 2024 16:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant