-
Notifications
You must be signed in to change notification settings - Fork 391
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
perf: use swiss map for the object cache #677
base: master
Are you sure you want to change the base?
Conversation
Hey @peter7891, could you provide more detailed benchmarks for our code, including measuring the execution time of a Gno contract? Also, do you have any suggestions for a benchmarking framework that we can use to centralize our performance history and optimization documentation? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Depends on #689
Let's wait until we have the tool, to merge this.
This is a large improvement and it gets better tha larger the heap is. |
Following a recent discussion, we have reconsidered our position, let's merge PRs freely for now, but keep the perf dashboard (#689) as a future goal. Please provide benchmarks with larger heap size to help achieve this. Thanks. |
I added benchmarks for the maps themselves.
In the larger context of the heap, it makes less of a different because the other operations around it add a lot more runtime costs. So i am not sure if making this change is worth making now. |
This PR uses
swiss
map for the object cache.Detailed benchmarks in this blog https://www.dolthub.com/blog/2023-03-28-swiss-map/
I've verified these are correct.
We should consider using this map in other places as well.
For example, in the implementation of the builtin map in Gno.