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(heap): Component based heap #22

Merged
merged 71 commits into from
Jul 23, 2023
Merged

feat(heap): Component based heap #22

merged 71 commits into from
Jul 23, 2023

Conversation

aapoalas
Copy link
Collaborator

Built on top of but mostly forgetting the VM from #21 I create an initial heap implementation and a bunch of examples of how this heap is used, in rough terms anyway.

Basically: Each type of thing lives in its own heap vector, objects here, strings there, arrays over there etc. At least right now eg. an Array has its array data and then a "pointer" (index) to an object data. It would be possible to inline the object data into the array data which would lessen the pressure on the object vector but it would bring usually-unnecessary (hopefully) data into the array data. An array is usually there for its elements (indexed properties), so keeping just those "close by" improves cache locality. If we brought in the object properties together then we'd probably push stuff out of L1 cache.

Anyway, fun stuff.

@sno2 sno2 merged commit a4bc87a into main Jul 23, 2023
1 check failed
@aapoalas aapoalas deleted the feat/component-based-heap branch July 23, 2023 15:49
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.

2 participants