Skip to content

PR: Optimize to_proto with Heap-Based Top-N Merge#1

Open
nehemming wants to merge 1 commit intomainfrom
optimise-v2
Open

PR: Optimize to_proto with Heap-Based Top-N Merge#1
nehemming wants to merge 1 commit intomainfrom
optimise-v2

Conversation

@nehemming
Copy link
Owner

Summary

This PR rewrites the to_proto implementation to use a more efficient heap-based merge strategy, replacing the previous BTreeMap-based approach. The new logic takes advantage of the fact that each ContributorSnapshot already contains sorted bid and ask levels.

Key Improvements

  • Implements an optimized k-way merge using a BinaryHeap to maintain the top-N bid and ask levels across all contributors.

  • Introduces an in-place traversal mechanism (DequeueLevels) to eliminate unnecessary memory allocations and data copying.

  • Ensures correct handling of price ties: all levels at the same price are included together.

  • Maintains correctness and the same output structure as before.

Performance

  • Achieved a 55%+ improvement in execution time.

  • to_proto now completes in approximately 2 microseconds under benchmark conditions.

Compatibility

  • Output remains fully backward-compatible.

  • All existing unit tests pass unchanged.

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