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

Improve encoding/decoding performance #728

Open
3 tasks
Domiii opened this issue Apr 20, 2022 · 0 comments
Open
3 tasks

Improve encoding/decoding performance #728

Domiii opened this issue Apr 20, 2022 · 0 comments
Labels
enhancement New feature or request performance Performance of runtime analysis tools can be quite a nuisance.

Comments

@Domiii
Copy link
Owner

Domiii commented Apr 20, 2022

Currently, Dbux encoding/decoding is its biggest performance bottleneck.

  • Change to custom encoding/decoding → use type information to replace current array-of-dictionary approach
    • → Should give many X of speed-up.
    • NOTE currently, all data is encoded as dictionaries, of which we can end up having millions and even more.
    • Currently: an array-of-object is actually stored as an array-of-dictionary, such as [{ veryLongProp1: 1, anotherPropHere: 2 }, { veryLongProp1: 3, anotherPropHere: 4 }, ...]
      • It should become something like { props: [ 'veryLongProp, anotherPropHere' ], data: [1, 2, 3, 4, ...] }
  • Profile the entire data transmission stack: which part takes how long?
  • Don't waitForAck on client

Some More Notes

  • We are using msgpack (code here).
  • On Node, one could use v8.serialize.
    • Some performance comparisons can be found here
    • It's max size is generally 4GB on 64 bit systems.
@Domiii Domiii added enhancement New feature or request performance Performance of runtime analysis tools can be quite a nuisance. labels Apr 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request performance Performance of runtime analysis tools can be quite a nuisance.
Projects
None yet
Development

No branches or pull requests

1 participant