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

Faster read/write mechanism #16

Open
ApocDev opened this issue Jun 13, 2016 · 0 comments
Open

Faster read/write mechanism #16

ApocDev opened this issue Jun 13, 2016 · 0 comments

Comments

@ApocDev
Copy link

ApocDev commented Jun 13, 2016

I've been slowly optimizing (and adding massive amounts of missing classes/structures/etc) to the library, and thought I'd share at least the base performance enhancing drug.

Deserialization times are incredibly slow once you start loading more and more classes (such as actors, components, etc), that have special serialization requirements. Mostly due to the fact that you are allocating lists, arrays, doing single-reads at a time, when you should be doing things in "bulk". (Such as TArray.SerializeBulk())

The following is the meat and potatoes for the reading (and partial writing) using much faster mechanisms, and proper support for structure-based reads, rather than per-field reads (which are slow)

https://gist.github.com/6c32846e50e029a6042c367052f3133a

Unfortunately, since the UE Explorer isn't "open source", I have to manage my own custom build of it, while I do a lot of cleanup, and reworking a lot of the UElib internals due to lack of support for a lot of the engine serialization tasks (such as components, custom serialization, bulk data, and non-default properties that you need tangible access to, rather than just string data). I'd offer a pull request, but it will cause a lot of "taint" to the library as you know it.

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

No branches or pull requests

1 participant