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

Make ObjectInstance MruPropertyCache2 dictionary lazy #454

Merged
merged 3 commits into from Jan 2, 2018

Conversation

Projects
None yet
2 participants
@lahma
Collaborator

lahma commented Dec 22, 2017

This change add commonly accessed prototype and constructor fields directly to ObjectInstance. Dictionary is initialized if these two fields are not enough to describe the object. On top of memory usage changes so that PR needs to be addressed first.

@sebastienros

This comment has been minimized.

Show comment
Hide comment
@sebastienros

sebastienros Dec 22, 2017

Owner

I am currently refactoring all the Environment classes and ObjectInstance to follow the ES6 spec, this will give me some headache when I merge 🚑

Owner

sebastienros commented Dec 22, 2017

I am currently refactoring all the Environment classes and ObjectInstance to follow the ES6 spec, this will give me some headache when I merge 🚑

@lahma

This comment has been minimized.

Show comment
Hide comment
@lahma

lahma Dec 22, 2017

Collaborator

What if you rebase overwriting with your changes and we re-implement the ObjectInstance part later if there's a TODO comment?

Collaborator

lahma commented Dec 22, 2017

What if you rebase overwriting with your changes and we re-implement the ObjectInstance part later if there's a TODO comment?

@sebastienros

This comment has been minimized.

Show comment
Hide comment
@sebastienros

sebastienros Dec 22, 2017

Owner

Don't worry, I'll make it work.

Owner

sebastienros commented Dec 22, 2017

Don't worry, I'll make it work.

lahma added some commits Dec 18, 2017

#451 reduce memory allocations
* remove LINQ from hot paths
* use List<T> where possible to get rid of memory allocations
* cache empty completions
#451 make MruPropertyCache2 dictionary lazy
* use separate fields for commonly accessed prototype and constructor
#451 add length to ObjectInstance common properties
* this helps with array optimization branch as this can be considered master version

@sebastienros sebastienros merged commit 189af9f into sebastienros:dev Jan 2, 2018

1 check passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details

@lahma lahma deleted the lahma:perf/lazy-mru-cache branch Jan 3, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment