-
Notifications
You must be signed in to change notification settings - Fork 2
Nodes store complete routes as uint-based types #35
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
base: pcronin/performance-feature-branch
Are you sure you want to change the base?
Nodes store complete routes as uint-based types #35
Conversation
Pull Request Test Coverage Report for Build 3808664512
💛 - Coveralls |
Interesting, there's a few issues on the Internet that seem to suggest there was issues with profiling on OS X (I've been using an M1 MacBook Pro). For interest's sake I ran the profiles on an other Xeon-based server running a flavor of linux. The bitslice program ran faster again, although this time it was closer.
The profiles now contain boxes from the program, so at least I've got something to look at that makes sense. |
ab8dd10
to
413ca9a
Compare
f6dc114
to
b8782e3
Compare
413ca9a
to
4bcfa32
Compare
4bcfa32
to
0df0069
Compare
3191ad4
to
919d6ed
Compare
0df0069
to
165a329
Compare
919d6ed
to
1bb8216
Compare
165a329
to
4ee17a1
Compare
ac52555
to
8f16126
Compare
We think a uint-based type is possibly more suitable for internally representing a rstrie than the bitslice type (which is currently implemented as []byte). Since we'll need to use uint32 for IPv4 route parts and uint128 (a custom type) for IPv6 route parts, each node will necessary contain a uint32 or a uint128, and thus we think having each node store its complete representation (conceptually, the route that the node represents) instead of just the bits unique to the node without consideration of the nodes and thus bits of the node's parents.